欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PyQt5 实现状态栏永久显示消息

程序员文章站 2022-03-02 11:31:36
前言:课程设计打算用qt和python做一个上位机,现在的需求是要在状态栏永久显示串口号、波特率。状态栏的自身的方法无法让信息长久保留,但是我们可以为状态栏永久添加小控件qstatusbar添加删除小...

前言:

课程设计打算用qt和python做一个上位机,现在的需求是要在状态栏永久显示串口号、波特率。状态栏的自身的方法无法让信息长久保留,但是我们可以为状态栏永久添加小控件

qstatusbar添加删除小控件的方法:

方法

描述

addpermanentwidget() 在状态栏中永久添加给定的窗口小控件对象
removewidget() 从状态栏中移除指定的小控件

实例代码如下:

import sys
from pyqt5.qtwidgets import *
 
class windows(qmainwindow):
 def __init__(self, parent=none):
  super(windows, self).__init__(parent)
  self.initui()
 
 def initui(self):
  self.resize(500, 500)
 
  self.status = self.statusbar()
  self.status.showmessage('实时更新的信息', 0) #状态栏本身显示的信息 第二个参数是信息停留的时间,单位是毫秒,默认是0(0表示在下一个操作来临前一直显示)
  self.comnum = qlabel('串口号:')
  self.baudnum = qlabel('波特率:')
 
  self.status.addpermanentwidget(self.comnum, stretch=0)
  self.status.addpermanentwidget(self.baudnum, stretch=0)
 
 
if __name__ == '__main__':
 app = qapplication(sys.argv)
 win = windows()
 win.show()
 sys.exit(app.exec_())

运行后的窗口:

PyQt5 实现状态栏永久显示消息

补充:

self.status.addpermanentwidget(self.comnum, stretch=0)
self.status.addpermanentwidget(self.baudnum, stretch=0)
#这两句的stretch是设置拉伸因子

如果把stretch作如下修改

self.status.addpermanentwidget(self.comnum, stretch=3)
self.status.addpermanentwidget(self.baudnum, stretch=1)
#这里两个控件会按3:1的比例放置在状态栏里

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。