上图是用pyqt5做的一个显示时间和调整音量大小的演示。
用到的模块,我事先导入了需要的模块
from PyQt5.QtGui import QIcon from PyQt5.QtCore import QTimer,Qt from PyQt5.QtWidgets import QWidget,QApplication,QLabel,QLCDNumber,QSlider import time,sys
QIcon用作制作图标的基类,QTimer用作内部定时器,QWidget,QApplication,QLabel,QLCDNumber,QSlider都是常用控件
首先创建窗体
class NewApp:
def __init__(self):
self.w = QWidget()
self.w.setGeometry(400, 400, 500, 450)
self.w.setWindowTitle('测试小工具')
self.w.setWindowIcon(QIcon('res/logo.png'))
self.w.show()
运行会出现空的框体,就不演示了,现在添加控件
可以创建一个方法,专门添加控件,这里我写了个类方法
def creat_widget(self):
self.Lsound=QLabel('音量',self.w)
self.Lsound.setGeometry(10,50,80,30)
self.Lcdshow=QLCDNumber(self.w)
self.Lcdshow.setGeometry(100,50,80,34)
self.slider=QSlider(Qt.Horizontal,self.w)
self.slider.setGeometry(250,60,220,20)
以上代码是显示音量控件(用LCD显示音量大小,通过滑块来改变数字),未把时间定时器放入,接下来会单独处理。
def creat_timer(self):#创建显示时间label控件
self.Ltime=QLabel(self.w)
self.Ltime.setGeometry(10,10,350,30)
def show_time(self):
self.Ltime.setText("北京时间:{}".format(time.strftime('%Y/%m/%D %H:%M:%S')))
def runtimer(self):
self.timer=QTimer()
self.timer.timeout.connect(self.show_time)
self.timer.start()
以上代码为显示当前时间的控件设置,runtimer()是定时器设置,运行后会开启定时器,creat_timer是创建时间显示控件,
show_time是显示当前时间节点,如果没有定时器,此处会一直显示当前时间,不会随时改变值
def widget_config(self):#控件配置
self.Lcdshow.setDigitCount(3)#显示三位数
self.Lcdshow.setSegmentStyle(QLCDNumber.Flat)#设置平铺
self.Lcdshow.display(0)#默认值
self.slider.valueChanged.connect(self.Lcdshow.display)
以上代码为控件配置,LCD显示位数,以及默认值的设置
完整代码
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import QTimer,Qt
from PyQt5.QtWidgets import QWidget,QApplication,QPushButton,QMessageBox,QLabel,QLCDNumber,QSlider
import os,time,sys
class NewApp:
def __init__(self):
self.w = QWidget()
self.w.setGeometry(400, 400, 500, 450)
self.w.setWindowTitle('测试小工具')
self.w.setWindowIcon(QIcon('res/logo.png'))
self.creat_widget()
self.widget_config()
self.creat_timer()
self.runtimer()
self.w.show()
def creat_widget(self):
self.Lsound=QLabel('音量',self.w)
self.Lsound.setGeometry(10,50,80,30)
self.Lcdshow=QLCDNumber(self.w)
self.Lcdshow.setGeometry(100,50,80,34)
self.slider=QSlider(Qt.Horizontal,self.w)
self.slider.setGeometry(250,60,220,20)
def widget_config(self):#控件配置
self.Lcdshow.setDigitCount(3)#显示三位数
self.Lcdshow.setSegmentStyle(QLCDNumber.Flat)#设置平铺
self.Lcdshow.display(0)#默认值
self.slider.valueChanged.connect(self.Lcdshow.display)
def creat_timer(self):#创建显示时间label控件
self.Ltime=QLabel(self.w)
self.Ltime.setGeometry(10,10,350,30)
def show_time(self):
self.Ltime.setText("北京时间:{}".format(time.strftime('%Y/%m/%D %H:%M:%S')))
def runtimer(self):
self.timer=QTimer()
self.timer.timeout.connect(self.show_time)
self.timer.start()
app=QApplication(sys.argv)
ui=NewApp()
sys.exit(app.exec_())