QtCore.信号不在我的cod上工作

2024-09-28 17:02:02 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能告诉我应该如何喜欢我的代码,或者我做错了什么吗? 我想使用“btn\u run”按钮来运行“view\u splash”功能。但有些人认为这是错误的,但“查看”不会启动。它没有显示错误。你知道吗

import sys
from PyQt4 import QtGui, QtCore
import time


class Window(QtGui.QMainWindow):

 def __init__(self):
    super(Window, self).__init__()
    self.setGeometry(500, 150, 500, 600)
    self.setWindowTitle('Test GUI')

    self.threadclass = AThread()
    self.connect(self.threadclass, QtCore.SIGNAL("view_splash()"), self.view_splash)

    self.home()

 def home(self):
    btn_run = QtGui.QPushButton("Run", self)
    self.threadclass = AThread()
    btn_run.clicked.connect(self.threadclass.start)
    btn_run.resize(120, 40)
    btn_run.move(190, 540)

    self.show()

 def view_splash(self):
    print('test')
    label = QLabel("<font color=red size=10<b>" + "SPLASH" + "</b></font>")
    label.setWindowFlags(Qt.SplashScreen | Qt.WindowStaysOnTopHint)
    label.show()
    QtCore.QTimer.singleShot(5000, label.close)


class AThread(QtCore.QThread):
 def __init__(self):
    super(AThread, self).__init__()

 def run(self):
    print(1)
    print(2)
    time.sleep(5)
    print(3)
    print(4)
    self.emit(QtCore.SIGNAL("view_splash()"))


 app = QtGui.QApplication(sys.argv)
 GUI = Window()
 sys.exit(app.exec_())

Tags: runimportselfviewinitdefsyslabel
1条回答
网友
1楼 · 发布于 2024-09-28 17:02:02

你需要创建和连接不同的信号。你知道吗

class AThread(QtCore.QThread):
    view_splash = QtCore.pyqtSignal()

    def run(self):
        ...
        self.view_splash.emit()

class Window(QtGui.QMainWindow):

    def __init__(self):
        ...
        self.threadclass.view_splash.connect(self.view_splash)

相关问题 更多 >