如何在闪烁标签中为QTimer正确使用超时?

时间:2019-02-11 20:26:20

标签: python-3.x pyqt5 qtimer

我正在尝试创建一个代码,使我连续闪烁两个标签(其中有图像)。我正在使用QTimer来帮助创建闪烁/闪烁,但是我以前不熟悉此功能。我收到

的错误消息“ TypeError:无法调用本机Qt信号”
blink = blinkTimer.timeout()

从我对此的研究中,我已经看到了一些有关插槽的信息……我不知道那是我的问题所在吗?如果是这样的话,对使用超时的插槽进行解释将非常有帮助和赞赏!

这是我的工作代码:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from testBlinking import *
from testBlinking import Ui_MainWindow

QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)

app = QApplication(sys.argv)
window = QMainWindow()
ui: Ui_MainWindow = Ui_MainWindow()
ui.setupUi(window)

ui.label_2.hide()

blinkTimer = QTimer()
blink = blinkTimer.timeout()

def onblink():
        if  ui.label.show():
            ui.label.hide()
            ui.label_2.show()
        else:
            ui.label.show()
            ui.label_2.hide()

blink.connect(onblink)
blink.start(500)

以下是根据以下建议编辑的更新代码:

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from testBlinking import *
from testBlinking import Ui_MainWindow

QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)

app = QApplication(sys.argv)
window = QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(window)

ui.label.hide()
ui.label_2.hide()

blinkTimer = QTimer()

def onblink():
        if ui.label.show():
            ui.label.hide()
            ui.label_2.show()
        else:
            ui.label.show()
            ui.label_2.hide()
blinkTimer.timeout.connect(onblink)
blinkTimer.start(500)
window.show()
sys.exit(app.exec_())

当前仅显示第一个标签,但不闪烁。在我的python代码中,突出显示了blinkTimer.timeout.connect(onblink)的连接...是否可能由于某种原因未连接我的函数?

0 个答案:

没有答案