我需要一些帮助来弄清楚如何在widget类下创建一个计时器。我有以下课程:
class TimerClass(QtGui.QWidget):
def __init__(self, parent = None):
super(TimerClass, self).__init__()
我正在尝试按如下方式实现计时器:
def start_timer(self):
timer = QtCore.QTimer(self)
timer.timeout.connect(self.__Time)
timer.start(1000)
并调用以下内容:
def __Time(self):
print("Timer End")
这个QWidget是从我的MainWindow调用的,我有另一个计时器没有问题,如上所示MainWindow,但我无法弄清楚如何让它与QWidget一起工作。我假设使用QWidget是问题,因为当我尝试运行它时出现以下错误:
AttributeError:'MainWindow'对象没有属性'_TimerClass__Time'
任何人都可以告诉我,我做错了什么,或者这样做的正确方法是什么?
答案 0 :(得分:0)
从您发布的代码中获取该错误的唯一方法是MainWindow
类是否继承TimerClass
,然后MainWindow
的实例尝试调用self.__Time()
。
这不起作用,因为double-underscored attributes只能由定义它们的类直接访问。如果将方法重命名为只有一个下划线,则错误将消失。
但是,对QObject
子类使用多重继承(例如QWidget
)通常是个坏主意,应该避免使用。请改用delegation。