- PyQt 教程
- PyQt - 首页
- PyQt - 简介
- PyQt - 环境搭建
- PyQt - Hello World
- PyQt - 主要类
- PyQt - 使用 Qt Designer
- PyQt - 元对象
- PyQt 信号与槽
- PyQt - 信号和槽
- PyQt - 支持和信号
- PyQt - 未绑定和已绑定信号
- PyQt - 使用 PyQtSignal 创建新信号
- PyQt - 连接、断开和发射信号
- PyQt - 槽装饰器
- PyQt - 槽连接
- PyQt 布局
- PyQt - 布局管理
- PyQt - QBoxLayout
- PyQt - QGridLayout
- PyQt - QFormLayout
- PyQt - QHBoxLayout
- PyQt - QVBoxLayout
- PyQt - QStackedLayout
- PyQt - QGraphicsGridLayout
- PyQt - QGraphicsAnchorLayout
- PyQt - QGraphicsLayout
- PyQt - QGraphicsLinearLayout
- PyQt 基本控件
- PyQt - 基本控件
- PyQt - QLabel 控件
- PyQt - QLineEdit 控件
- PyQt - QPushButton 控件
- PyQt - QRadioButton 控件
- PyQt - QCheckBox 控件
- PyQt - QComboBox 控件
- PyQt - QSpinBox 控件
- PyQt - QMessageBox
- PyQt - QDialogButtonBox 控件
- PyQt - QFontComboBox 控件
- PyQt - QDoubleSpinBox 控件
- PyQt - QToolBox 控件
- PyQt - QDialog 类
- PyQt - QMessageBox
- PyQt - 多文档界面
- PyQt - 拖放操作
- PyQt 绘图 API
- PyQt - 绘图 API
- PyQt 数据库
- PyQt - 数据库处理
- PyQt 核心知识
- PyQt - BrushStyle 常量
- PyQt - QClipboard
- PyQt - QPixmap 类
- PyQt 有用资源
- PyQt - 快速指南
- PyQt - 有用资源
- PyQt - 讨论
PyQt - QStatusBar 控件
QMainWindow 对象在底部保留了一条水平条作为状态栏。它用于显示永久或上下文状态信息。
状态指示器有三种类型:
临时 - 短暂占用大部分状态栏。例如,用于解释工具提示文本或菜单项。
普通 - 占用状态栏的一部分,可能被临时消息隐藏。例如,用于在文字处理器中显示页面和行号。
永久 - 从不隐藏。用于重要的模式指示。例如,一些应用程序在状态栏中放置一个 Caps Lock 指示器。
QMainWindow 的状态栏可以通过 statusBar() 函数获取。setStatusBar() 函数激活它。
self.statusBar = QStatusBar() self.setStatusBar(self.statusBar)
QStatusBar 类的成员方法
序号 | 方法及描述 |
---|---|
1 |
addWidget() 在状态栏中添加给定的控件对象 |
2 |
addPermanentWidget() 在状态栏中永久添加给定的控件对象 |
3 |
showMessage() 在状态栏中显示临时消息,持续指定的时间间隔 |
4 |
clearMessage() 移除任何正在显示的临时消息 |
5 |
removeWidget() 从状态栏中移除指定的控件 |
示例
在下面的示例中,一个顶级 QMainWindow 具有一个菜单栏和一个 QTextEdit 对象作为其中心控件。
窗口的状态栏如上所述被激活。
菜单的 triggered 信号传递给 processtrigger() 槽函数。如果触发了“显示”操作,它将在状态栏中显示一条临时消息,如下所示:
if (q.text() == "show"): self.statusBar.showMessage(q.text()+" is clicked",2000)
该消息将在 2000 毫秒(2 秒)后消失。如果触发了“添加”操作,则会添加一个按钮控件。
if q.text() == "add": self.statusBar.addWidget(self.b)
“移除”操作将从状态栏中移除按钮。
if q.text() == "remove": self.statusBar.removeWidget(self.b) self.statusBar.show()
完整的代码如下所示:
import sys from PyQt4.QtCore import * from PyQt4.QtGui import * class statusdemo(QMainWindow): def __init__(self, parent = None): super(statusdemo, self).__init__(parent) bar = self.menuBar() file = bar.addMenu("File") file.addAction("show") file.addAction("add") file.addAction("remove") file.triggered[QAction].connect(self.processtrigger) self.setCentralWidget(QTextEdit()) self.statusBar = QStatusBar() self.b = QPushButton("click here") self.setWindowTitle("QStatusBar Example") self.setStatusBar(self.statusBar) def processtrigger(self,q): if (q.text() == "show"): self.statusBar.showMessage(q.text()+" is clicked",2000) if q.text() == "add": self.statusBar.addWidget(self.b) if q.text() == "remove": self.statusBar.removeWidget(self.b) self.statusBar.show() def main(): app = QApplication(sys.argv) ex = statusdemo() ex.show() sys.exit(app.exec_()) if __name__ == '__main__': main()
以上代码产生以下输出:
广告