- 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()
以上程式碼產生以下輸出:
廣告