QT状态栏提示信息保留1秒
时间: 2023-10-02 17:03:23 浏览: 131
您可以通过使用 QTimer 和 QLabel 组件来实现在状态栏显示提示信息一段时间后自动隐藏。以下是一个示例代码:
```python
from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import QMainWindow, QApplication, QLabel
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.statusBar().showMessage('Hello World!', 1000) # 显示提示信息,保留1秒
self.label = QLabel('Status:', self) # 创建一个标签用于显示状态信息
self.label.setMinimumWidth(150)
self.label.setAlignment(Qt.AlignCenter)
self.statusBar().addPermanentWidget(self.label) # 将标签添加到状态栏中
self.timer = QTimer(self) # 创建一个定时器
self.timer.timeout.connect(self.hide_status) # 将定时器的 timeout 信号连接到 hide_status 方法
self.timer.start(1000) # 每隔1秒触发一次 timeout 信号
def hide_status(self):
self.label.setText('') # 隐藏状态信息
self.timer.stop() # 停止定时器,避免重复触发 timeout 信号
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在上面的示例代码中,我们首先在状态栏中显示了一个 "Hello World!" 的提示信息,并保留1秒钟。然后我们创建了一个 QLabel 组件用于显示状态信息,并将其添加到状态栏中。接着我们创建了一个 QTimer 定时器,并将其 timeout 信号连接到 hide_status 方法上。在 hide_status 方法中,我们将状态信息的文本内容设置为空,并停止定时器,以避免重复触发 timeout 信号。最后我们设置定时器的触发间隔为1秒,这样每隔1秒钟,hide_status 方法就会被触发一次,从而隐藏状态信息。
阅读全文