已有主线程:class MyMainWindow(QMainWindow, Ui_MainWindow): __maccur = True def __init__(self, *args, **kwargs): super(MyMainWindow, self).__init__(*args, **kwargs) self.setupUi(self) if __name__ == '__main__': app = QApplication(sys.argv) win = MyMainWindow() win.show() sys.exit(app.exec_()),想要在这个主线程某个方法中调用倒计时的提示信息,但是不能影响主线程其他方法的操作,实现同步执行,请写出来
时间: 2023-11-27 16:55:02 浏览: 92
qt_test.zip_2S1_QT界面_qt test_qt 界面
可以使用QTimer和QMessageBox来实现倒计时的提示信息,同时不影响主线程其他方法的操作。具体实现如下:
```python
from PyQt5.QtCore import QTimer, Qt
from PyQt5.QtWidgets import QMessageBox
class MyMainWindow(QMainWindow, Ui_MainWindow):
__maccur = True
def __init__(self, *args, **kwargs):
super(MyMainWindow, self).__init__(*args, **kwargs)
self.setupUi(self)
# 创建计时器
self.timer = QTimer(self)
self.timer.timeout.connect(self.show_message_box)
def some_method(self):
# 启动计时器,设置倒计时时间为10秒
self.timer.start(10000)
# 继续执行其他操作
def show_message_box(self):
# 停止计时器
self.timer.stop()
# 创建消息框
msg_box = QMessageBox(self)
msg_box.setText("10秒时间已到!")
msg_box.setStandardButtons(QMessageBox.Ok)
msg_box.setDefaultButton(QMessageBox.Ok)
# 居中显示消息框
msg_box.setGeometry(self.geometry().x() + self.width() // 2 - msg_box.width() // 2,
self.geometry().y() + self.height() // 2 - msg_box.height() // 2,
msg_box.width(),
msg_box.height())
# 显示消息框
msg_box.exec_()
```
在需要调用倒计时的方法中,调用`self.timer.start(10000)`启动计时器,设置倒计时时间为10秒。然后继续执行其他操作。当计时器超时时,会自动调用`self.show_message_box()`方法来显示提示信息。在`show_message_box()`方法中,首先停止计时器,然后创建并显示消息框,最后居中显示消息框。
阅读全文