如何使用 PYQT 在按钮上 运行 一个接一个地执行一个函数
How to run one function only after another, at pushbutton using PYQT
我已阅读多篇关于此的帖子,但无法修复我的代码。
我正在 运行ning 一个 GUI(使用 PyQt5),它 运行 是来自另一个脚本(file_py
)的函数(Extraction()
)。我想要做的是在开始时显示绿色 Led 图片 (.png) 的脚本,然后当单击按钮时,在 运行 宁 Extraction()
之前,GUI 将显示红色 Led 图片。
from PyQt5 import QtCore, QtGui, QtWidgets
import file_py as my_script
def setupUi(self, MainWindow):
self.pushButton.clicked.connect(self.trigger_status_icon)
self.LED_Green = QtGui.QPixmap("C:/Desktop/green-led-on.png")
self.LED_Red = QtGui.QPixmap("C:/Desktop/red-led-on.png")
self.labelStatus = QtWidgets.QLabel()
self.labelStatus.setPixmap(self.LED_Green) #starting GUI with a Green Led picture
self.labelStatus.setScaledContents(True)
def trigger_status_icon(self):
self.labelStatus.setPixmap(self.LED_Red)
return self.run_Script()
def run_Script(self):
my_script.Extraction()
但我使用此代码得到的结果如下:在 GUI 的开头显示绿色 Led 图片。单击按钮后,函数 Extraction()
运行s,只有在它完成后,才会出现 LED 红色图片。
我该怎么做才能让红色 LED 图片在 Extraction()
功能之前 运行?
当您在 UI 中进行更改后进行一些“冗长”操作时,您可以使用 QWidget.update
方法显式刷新 UI:
def trigger_status_icon(self):
self.labelStatus.setPixmap(self.LED_Red)
self.update()
return self.run_Script()
通过在分配图片后添加 QtWidgets.QApplication.processEvents()
将刷新 QtWidget。
def trigger_status_icon(self):
self.labelStatus.setPixmap(self.LED_Red)
QtWidgets.QApplication.processEvents()
return self.run_Script()
我已阅读多篇关于此的帖子,但无法修复我的代码。
我正在 运行ning 一个 GUI(使用 PyQt5),它 运行 是来自另一个脚本(file_py
)的函数(Extraction()
)。我想要做的是在开始时显示绿色 Led 图片 (.png) 的脚本,然后当单击按钮时,在 运行 宁 Extraction()
之前,GUI 将显示红色 Led 图片。
from PyQt5 import QtCore, QtGui, QtWidgets
import file_py as my_script
def setupUi(self, MainWindow):
self.pushButton.clicked.connect(self.trigger_status_icon)
self.LED_Green = QtGui.QPixmap("C:/Desktop/green-led-on.png")
self.LED_Red = QtGui.QPixmap("C:/Desktop/red-led-on.png")
self.labelStatus = QtWidgets.QLabel()
self.labelStatus.setPixmap(self.LED_Green) #starting GUI with a Green Led picture
self.labelStatus.setScaledContents(True)
def trigger_status_icon(self):
self.labelStatus.setPixmap(self.LED_Red)
return self.run_Script()
def run_Script(self):
my_script.Extraction()
但我使用此代码得到的结果如下:在 GUI 的开头显示绿色 Led 图片。单击按钮后,函数 Extraction()
运行s,只有在它完成后,才会出现 LED 红色图片。
我该怎么做才能让红色 LED 图片在 Extraction()
功能之前 运行?
当您在 UI 中进行更改后进行一些“冗长”操作时,您可以使用 QWidget.update
方法显式刷新 UI:
def trigger_status_icon(self):
self.labelStatus.setPixmap(self.LED_Red)
self.update()
return self.run_Script()
通过在分配图片后添加 QtWidgets.QApplication.processEvents()
将刷新 QtWidget。
def trigger_status_icon(self):
self.labelStatus.setPixmap(self.LED_Red)
QtWidgets.QApplication.processEvents()
return self.run_Script()