问题描述
这是我的代码
我想调用按钮并从QThread类更改其颜色,因为它一直崩溃,并且没有给出任何类型的错误
有人知道如何解决这个问题吗?
from PyQt5 import QtCore,QtGui,QtWidgets
from PyQt5.QtWidgets import QMessageBox
from PyQt5.QtCore import Qt,QThread,pyqtSignal
import time
import sys
class YourThreadName(QThread):
def __init__(self1):
QThread.__init__(self1)
def __del__(self1):
self1.wait()
def run(self1):
#global var
for var in range(10,-1):
print(var)
time.sleep(1)
self1.ui = Ui_Form()
#################################
#self1.connect(Ui_Form,QtCore.SIGNAL) # This fuction work
self1.ui.ChangeColor() # This fuction dosen't work
class Ui_Form(object):
def setupUi(self,Form):
Form.setobjectName("Form")
Form.resize(725,670)
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(230,370,93,28))
self.pushButton.setobjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(Form)
self.pushButton_2.setGeometry(QtCore.QRect(490,28))``
self.pushButton_2.setobjectName("pushButton_2")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
self.pushButton.clicked.connect(lambda: self.ChangeColor())
self.pushButton_2.clicked.connect(lambda : self.startTh())
def startTh(self):
self.myThread = YourThreadName()
self.myThread.start()
def ChangeColor(self):
self.pushButton.setStyleSheet("background-color: rgb(255,0)")
def retranslateUi(self,Form):
_translate = QtCore.QCoreApplication.translate
Form.setwindowTitle(_translate("Form","Form"))
self.pushButton.setText(_translate("Form","PushButton"))
self.pushButton_2.setText(_translate("Form","PushButton"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)