PyQt5 – QStatusBar小工具

PyQt5 – QStatusBar小工具

QMainWindow对象在底部保留了一个水平条作为 状态条。 它被用来显示永久或上下文的状态信息。

有三种类型的状态指示器 –

暂时的 - 简要地占据了大部分的状态栏。例如,用于解释工具提示文本或菜单条目。

正常 - 占据状态栏的一部分,可能被临时信息所隐藏。例如,用于显示文字处理器中的页数和行数。

永久 --它永远不会被隐藏。用于重要的模式指示。例如,一些应用程序在状态栏中放了一个Caps Lock指示器。

QMainWindow的状态栏由statusBar()函数检索,setStatusBar()函数将其激活。

self.statusBar = QStatusBar()
self.setStatusBar(self.statusBar)

QStatusBar类的方法

序号 方法和描述
1 addWidget() 在状态栏中添加给定的widget对象。
2 addPermanentWidget() 在状态栏中永久添加给定的widget对象。
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 PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets 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()

上述代码产生以下输出。状态栏显示所选菜单按钮的标题-

PyQt5 - QStatusBar小工具

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程