PyQt5 – 在窗口中设置状态栏信息

  • Post category:Python

下面是Python中PyQt5库如何在窗口中设置状态栏信息的完整使用攻略。

设置状态栏信息

在PyQt5中,要在窗口中设置状态栏信息的话,需要用到QStatusBar类。它提供了一种简单的方式在窗口底部显示状态消息。

创建状态栏

要创建一个状态栏,需要在窗口类的构造函数中增加如下代码:

self.statusBar().showMessage('Ready')

这将在主窗口底部创建一个状态栏,并在状态栏中显示一条消息“Ready”。

在状态栏中显示消息

要在状态栏中显示消息,可以调用QStatusBar类的showMassage方法,如下所示:

self.statusBar().showMessage('Connected')

这将在状态栏中显示一条消息“Connected”。

在状态栏中显示临时消息

有时候,可能需要在状态栏中显示一条只在很短时间内可见的临时消息。可以使用QStatusBar类的showMessage方法的第二个参数来实现这个功能,如下所示:

self.statusBar().showMessage('Error', 5000)

这将在状态栏中显示一条消息“Error”,并在5秒(5000毫秒)后自动消失。

示例

下面是一个示例程序,演示了如何在窗口中设置状态栏信息:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        # 创建状态栏,并显示一条消息
        self.statusBar().showMessage('Ready')

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Statusbar')
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

执行此程序,将看到窗口底部显示一条消息“Ready”。

下面是另一个示例程序,在此程序中,点击按钮将显示在状态栏中的消息:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        # 创建状态栏,并显示一条消息
        self.statusBar().showMessage('Ready')

        # 创建按钮,并连接信号和槽
        btn = QPushButton('Show message', self)
        btn.clicked.connect(self.showMessage)
        btn.resize(btn.sizeHint())
        btn.move(50, 50)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Statusbar')
        self.show()

    def showMessage(self):

        # 在状态栏中显示一条消息
        self.statusBar().showMessage('Button clicked')


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

执行此程序,将看到窗口中有一个按钮,点击按钮后,状态栏会显示一条消息“Button clicked”。