Pyqt-qstatusbar-widget
提供:Dev Guides
PyQt-QStatusBarウィジェット
QMainWindowオブジェクトは、*ステータスバー*として下部に水平バーを予約します。 永続的またはコンテキストのステータス情報を表示するために使用されます。
ステータスインジケータには3種類あります-
- 一時-ステータスバーの大部分を簡単に占有します。 たとえば、ツールヒントのテキストまたはメニューエントリの説明に使用されます。
- 通常-ステータスバーの一部を占め、一時的なメッセージによって非表示になる場合があります。 たとえば、ワードプロセッサでページ番号と行番号を表示するために使用されます。
- パーマネント-決して隠されることはありません。 重要なモード表示に使用されます。 たとえば、一部のアプリケーションは、ステータスバーにCaps Lockインジケーターを配置します。
QMainWindowのステータスバーは、statusBar()関数によって取得されます。 setStatusBar()関数はそれをアクティブにします。
self.statusBar = QStatusBar()
self.setStatusBar(self.statusBar)
QStatusBarクラスのメソッド
Sr.No. | Methods & Description |
---|---|
1 |
addWidget() 指定されたウィジェットオブジェクトをステータスバーに追加します |
2 |
addPermanentWidget() 指定されたウィジェットオブジェクトをステータスバーに永続的に追加します |
3 |
showMessage() 指定された時間間隔の間、ステータスバーに一時的なメッセージを表示します |
4 |
clearMessage() 表示されている一時的なメッセージを削除します |
5 |
removeWidget() 指定したウィジェットをステータスバーから削除します |
例
次の例では、最上位のQMainWindowには、中央のウィジェットとしてメニューバーとQTextEditオブジェクトがあります。
前述のように、ウィンドウのステータスバーがアクティブになります。
メニューのトリガー信号は、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()
上記のコードは、次の出力を生成します-