使用Try / except和QTimer

时间:2016-05-25 23:02:17

标签: python pyqt qtimer

我使用QTimer启动一个启动计时器的方法。当我按下QPushButton时,我需要停止此计时器并执行其他操作。所以,当我按下按钮时,我收到了这个错误:

TypeError: 'instancemethod' object is not connected

如何使用try-except方法来避免此错误。这就是我所做的:

def delete(self):
    try:
        self.tmr.timeout.disconnect(self.run_save_clock)
        self.tmr.timeout.disconnect(self.append_Data)
        self.data = []
        self.time_label_2.setText("00:00:00")
        self.data_label.setText("000000")

    except "TypeError: 'instancemethod' object is not connected": #HERE IS WHERE I HAVE THE PROBLEM
        self.tmr.timeout.disconnect(self.append_Data)
        self.data = []
        self.time_label_2.setText("00:00:00")
        self.data_label.setText("000000")

但它不起作用。 self.data是一个变量,我在计时器处于活动状态时保存了一些数据。

当我第一次按下与此方法相关的另一个QPushButton时,会出现错误:

def stop(self):
    self.saveBtn.setEnabled(True)
    self.stopBtn.setEnabled(False)
    self.tmr.timeout.disconnect(self.run_save_clock)
    self.tmr.timeout.disconnect(self.append_Data)

我对try/except方法做错了什么?

1 个答案:

答案 0 :(得分:1)

根据https://docs.python.org/2/tutorial/errors.html,您不应该在“except”之后包含字符串错误消息,而是包含ErrorType,然后添加您想要引发的错误消息,如下所示:

try:
    #something

except TypeError:
    #Do something here
    print " 'instancemethod' object is not connected"
    #Or do something here