-1

我需要一些帮助来弄清楚如何在小部件类下创建计时器。我有以下课程:

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”

谁能告诉我我做错了什么或者正确的做法是什么?

4

1 回答 1

0

从您发布的代码中获取该错误的唯一方法是,如果MainWindow该类继承了TimerClass,然后MainWindow尝试调用的实例self.__Time()

这是行不通的,因为双下划线的属性只能由定义它们的类直接访问。如果将方法重命名为只有一个下划线,错误就会消失。

QObject但是,对子类(例如)使用多重继承QWidget通常是一个坏主意,应该避免。改用委托

于 2015-08-20T15:20:29.537 回答