前言:
课程设计打算用qt和python做一个上位机,现在的需求是要在状态栏永久显示串口号、波特率。状态栏的自身的方法无法让信息长久保留,但是我们可以为状态栏永久添加小控件
QStatusBar添加删除小控件的方法:
方法 |
描述 |
---|---|
addPermanentWidget() | 在状态栏中永久添加给定的窗口小控件对象 |
removeWidget() | 从状态栏中移除指定的小控件 |
实例代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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_())
|
运行后的窗口:
补充:
1
2
3
|
self .status.addPermanentWidget( self .comNum, stretch = 0 )
self .status.addPermanentWidget( self .baudNum, stretch = 0 )
#这两句的stretch是设置拉伸因子
|
如果把stretch作如下修改
1
2
3
|
self .status.addPermanentWidget( self .comNum, stretch = 3 )
self .status.addPermanentWidget( self .baudNum, stretch = 1 )
#这里两个控件会按3:1的比例放置在状态栏里
|
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/Pony_/article/details/83047618