【发布时间】:2020-03-18 21:46:22
【问题描述】:
我想要在这里做的是让 PyQt5 中的按钮更改为“正在工作...”和单击时为红色...它当前所做的。事情是我需要它在完成运行该按钮链接到的方法后更改回默认的“SCAN”和绿色。
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
import pyautogui
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.showMaximized()
MainWindow.setMinimumSize(QtCore.QSize(0, 0))
MainWindow.setMaximumSize(QtCore.QSize(3840, 2160))
font = QtGui.QFont()
font.setFamily("Arial Black")
MainWindow.setFont(font)
MainWindow.setStyleSheet("background-color: rgba(0, 85, 127, 100);")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(250, 250, 400, 150))
font = QtGui.QFont()
font.setFamily("Tahoma")
font.setPointSize(24)
font.setBold(True)
font.setWeight(75)
self.pushButton.setFont(font)
self.pushButton.setStyleSheet("background-color: rgb(0, 170, 0);\n"
"color: rgb(255, 255, 255);")
self.pushButton.setObjectName("pushButton")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(730, 300, 701, 111))
font = QtGui.QFont()
font.setPointSize(18)
font.setBold(True)
font.setItalic(False)
font.setWeight(75)
self.label.setFont(font)
self.label.setLayoutDirection(QtCore.Qt.LeftToRight)
self.label.setObjectName("label")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1920, 18))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setStyleSheet("background-color: rgba(0, 85, 127, 0);\n"
"color: rgb(255, 255, 255);")
self.pushButton.setText(_translate("MainWindow", "SCAN"))
self.label.setText(_translate("MainWindow", "WELCOME"))
self.pushButton.clicked.connect(self.copy)
def copy(self, MainWindow):
self.pushButton.setText('WORKING...')
self.pushButton.setStyleSheet("background-color: rgb(250, 0, 0);\n"
"color: rgb(255, 255, 255);")
testprompt=storeid=pyautogui.prompt(text='test', title='test')
class Application():
def run():
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Application.run()
【问题讨论】:
-
截图和解释它是如何不工作的会很有帮助。
-
嗨,很遗憾,我现在无法上传屏幕截图,但此代码加载了一个带有绿色按钮的窗口,单击时显示“SCAN”,它在同一类中运行“复制”方法,它会加载一个提示窗口(仅出于测试目的,最终将在单击按钮时运行一个单独的 python 文件)。它显示该提示,并将按钮文本更改为“正在工作...”,但在运行执行这些操作的方法后,我需要将其更改回“就绪”和绿色的默认测试...。我希望这是有道理的:/
-
这是工作中的一个挑战,所以对我很有帮助
-
@MikeNH 您是否尝试在调用提示符的行之后再次使用
self.pushButton.setText('SCAN')? -
@musicmante 谢谢!如此简单...不知道我是怎么错过的。谢谢!!!