1 QLabel
QLabel也继承自QFrame
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
import sys,random
class DemoQLCDNumber(QWidget):
def __init__(self):
super(DemoQLCDNumber, self).__init__()
self.setWindowTitle("QLCDNumber Demo")
self.resize(400,300)
self.mainlayout = QVBoxLayout(self)
#label
self.num_label = QLabel()
self.num_label.setNum(10)
self.num_label.setAlignment(Qt.AlignCenter) #文字居中显示
self.num_label.setStyleSheet('''
color:red;
font-size:100px ;
''')
#添加到布局
self.mainlayout.addWidget(self.num_label)
if __name__ == '__main__':
app = QApplication(sys.argv)
test = DemoQLCDNumber()
test.show()
sys.exit(app.exec_())
2 QLCDNumber
QLCDNumber继承自QFrame
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
import sys,random
class DemoQLCDNumber(QWidget):
def __init__(self):
super(DemoQLCDNumber, self).__init__()
self.setWindowTitle("QLCDNumber Demo")
self.resize(400,300)
self.mainlayout = QVBoxLayout(self)
#LCD1
self.qlcd01= QLCDNumber( 1, self) #第一个参数显示数字位数
'''
QLCDNumber.Hex 十六进制
QLCDNumber.Dec 十进制
QLCDNumber.Oct 八进制
QLCDNumber.Bin 二进制
'''
self.qlcd01.setMode(QLCDNumber.Dec ) #十进制显示
# void display(const QString &s)
# void display(int num)
# void display(double num)
self.qlcd01.display(6)
#LCD2
self.qlcd02 = QLCDNumber(self)
self.qlcd02.setDigitCount(2) #数字位数设置
self.qlcd02.display(99)
#样式和设置QFrame差不多
self.qlcd02.setStyleSheet('''\
QLCDNumber{
color: green ;
background-color: red;
}
'''
)
#添加到布局
self.mainlayout.addWidget(self.qlcd01)
self.mainlayout.addWidget(self.qlcd02)
if __name__ == '__main__':
app = QApplication(sys.argv)
test = DemoQLCDNumber()
test.show()
sys.exit(app.exec_())
显示如下:
3 QProgressBar
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
import sys,random
class DemoQProgressBar(QWidget):
def __init__(self):
super(DemoQProgressBar, self).__init__()
self.setWindowTitle("QProgressBar")
self.resize(400,300)
self.mainlayout = QVBoxLayout(self)
#进度条1 正常普通进度条
self.progressbar01 = QProgressBar(self,minimum=0, maximum=100, objectName="progressbar01")
self.progressbar01.setMinimum(0)
self.progressbar01.setMaximum(100) #设置最大值 最小值
self.progressbar01.setValue(random.randint(0,100)) #设置进度值
self.progressbar01.setAlignment(Qt.AlignCenter) #进度条文字居中显示
self.progressbar01.setStyleSheet('''\
#progressbar01::chunk { background-color: red;} \
''')
#进度条2 常规方形繁忙状态
self.progressbar02 = QProgressBar(self, minimum=0, maximum=0, objectName="progressbar02")
self.progressbar02.setStyleSheet('''\
#progressbar02::chunk { background-color: blue;} \
''')
# 方形格子繁忙状态
self.progressbar03 = QProgressBar(self, minimum=0, maximum=0, objectName="progressbar03")
self.progressbar03.setStyleSheet('''\
#progressbar03 {
border: 2px solid #2196F3;/*边框以及边框颜色*/
border-radius: 5px;
background-color: #E0E0E0;
}
#progressbar03::chunk {
background-color: #2196F3;
width: 10px; /*区块宽度*/
margin: 0.5px;
}
''')
#控制进度按钮
self.btn = QPushButton("进度加1")
self.btn.clicked.connect(self.on_btn_clicked)
#添加到布局
self.mainlayout.addWidget(self.progressbar01)
self.mainlayout.addSpacing(40)
self.mainlayout.addWidget(self.progressbar02)
self.mainlayout.addSpacing(40)
self.mainlayout.addWidget(self.progressbar03)
self.mainlayout.addSpacing(10)
self.mainlayout.addWidget(self.btn)
self.mainlayout.addStretch()
def on_btn_clicked(self):
num = self.progressbar01.value()
if num==100: num= -1
self.progressbar01.setValue(num+1)
if __name__ == '__main__':
app = QApplication(sys.argv)
test = DemoQProgressBar()
test.show()
sys.exit(app.exec_())
效果如下: