如何使用QTimer与QWidget(如果可能)

时间:2015-08-20 06:22:02

标签: python pyqt countdowntimer qtimer

我需要一些帮助来弄清楚如何在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'

任何人都可以告诉我,我做错了什么,或者这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

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

这不起作用,因为double-underscored attributes只能由定义它们的类直接访问。如果将方法重命名为只有一个下划线,则错误将消失。

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