求解 重定义类初始化后提示错误
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())
第8,9行删除 洋洋痒 发表于 2021-3-2 12:29
第8,9行删除
删除是可以但是想在初始化在 设置label的属性 所以才这样写的不明白问题是出在哪里 本帖最后由 洋洋痒 于 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())
你要是不修改__init__没必要写他,你写了反而错了 假设一个类名字是A,实例化的时候a=A(x),这个x是__init__方法后面括号里的参数,你重写的时候把参数弄丢了,就是当__init__后面括号里只有一个self的时候,你实例化的时候只能a=A()括号里是不能有东西的
既然你重写了__init__方法并且没有其他参数,你下边的label = MyLabel(self)是不能有self的 就是想重写__init__ ..... chen0525s 发表于 2021-3-2 12:55
就是想重写__init__ .....
那你就按我4楼那么写后边括号里加点东西就好了 def __init__(self,parent=None): 这样写更正确一些 def __init__(self, *args, **kwargs): 明白了这样也行。。。
页:
[1]