chen0525s 发表于 2021-3-2 11:57:05

求解 重定义类初始化后提示错误


import sys

from PyQt5.QtWidgets import QApplication, QDialog, QLabel


class MyLabel(QLabel):
    def __init__(self):
      super().__init__()

    def timerEvent(self, *args, **kwargs):
      current_sec = int(self.text())
      current_sec -= 1
      self.setText(str(current_sec))


class Window(QDialog):
    def __init__(self):
      super().__init__()
      self.ui()

    def ui(self):
      label = MyLabel(self)
      label.setText('10')
      label.move(100, 100)
      label.setStyleSheet('font-size:22px;')
      label.startTimer(1000)


app = QApplication(sys.argv)

window = Window()
window.show()

sys.exit(app.exec())

洋洋痒 发表于 2021-3-2 12:29:52

第8,9行删除

chen0525s 发表于 2021-3-2 12:36:01

洋洋痒 发表于 2021-3-2 12:29
第8,9行删除

删除是可以但是想在初始化在 设置label的属性 所以才这样写的不明白问题是出在哪里

洋洋痒 发表于 2021-3-2 12:40:58

本帖最后由 洋洋痒 于 2021-3-2 13:04 编辑


import sys

from PyQt5.QtWidgets import QApplication, QDialog, QLabel


class MyLabel(QLabel):
    def __init__(self,parent=None):
      super().__init__(parent)

    def timerEvent(self, *args, **kwargs):
      current_sec = int(self.text())
      current_sec -= 1
      self.setText(str(current_sec))


class Window(QDialog):
    def __init__(self):
      super().__init__()
      self.ui()

    def ui(self):
      label = MyLabel(self)
      label.setText('10')
      label.move(100, 100)
      label.setStyleSheet('font-size:22px;')
      label.startTimer(1000)


app = QApplication(sys.argv)

window = Window()
window.show()

sys.exit(app.exec())

洋洋痒 发表于 2021-3-2 12:42:36

你要是不修改__init__没必要写他,你写了反而错了

洋洋痒 发表于 2021-3-2 12:52:08

假设一个类名字是A,实例化的时候a=A(x),这个x是__init__方法后面括号里的参数,你重写的时候把参数弄丢了,就是当__init__后面括号里只有一个self的时候,你实例化的时候只能a=A()括号里是不能有东西的
既然你重写了__init__方法并且没有其他参数,你下边的label = MyLabel(self)是不能有self的

chen0525s 发表于 2021-3-2 12:55:53

就是想重写__init__ .....

洋洋痒 发表于 2021-3-2 12:59:59

chen0525s 发表于 2021-3-2 12:55
就是想重写__init__ .....

那你就按我4楼那么写后边括号里加点东西就好了

洋洋痒 发表于 2021-3-2 13:02:32

def __init__(self,parent=None):   这样写更正确一些

chen0525s 发表于 2021-3-2 13:21:44

def __init__(self, *args, **kwargs): 明白了这样也行。。。
页: [1]
查看完整版本: 求解 重定义类初始化后提示错误