圆月山庄资源网 Design By www.vgjia.com
QTimer控件介绍
如果在应用程序中周期性地进行某项操作,比如周期性的检测主机的cpu值,则需要用到QTimer定时器,QTimer类提供了重复和单次的定时器,要使用定时器,需要先创建一个QTimer实例,将其Timeout信号连接到槽函数,并调用start(),然后,定时器,会以恒定的间隔发出timeout信号
当窗口的控件收到Timeout信号后,他就会停止这个定时器,这是在图形用户界面中实现复杂工作的一个典型用法,随着技术的进步,多线程在越来越多的平台上被使用,QTimer对象会被替代掉
QTimer类中的常用方法
QTimer类中常用的信号
QTimer的使用实例
import sys from PyQt5.QtWidgets import QWidget,QPushButton,QApplication,QListWidget,QGridLayout,QLabel from PyQt5.QtCore import QTimer,QDateTime class WinForm(QWidget): def __init__(self,parent=None): super(WinForm, self).__init__(parent) #设置标题 self.setWindowTitle('QTimer demo') #实例化一些控件 self.listFile=QListWidget() self.lable=QLabel('显示当前时间') self.startBtn=QPushButton('开始') self.endBtn=QPushButton('结束') #栅格布局 layout=QGridLayout() #初始化一个定时器 self.timer=QTimer() #定时器结束,触发showTime方法 self.timer.timeout.connect(self.showTime) #添加控件到栅格指定位置 layout.addWidget(self.lable,0,0,1,2) layout.addWidget(self.startBtn,1,0) layout.addWidget(self.endBtn,1,1) #开始结束按钮点击触发相应的槽函数 self.startBtn.clicked.connect(self.startTimer) self.endBtn.clicked.connect(self.endTimer) #设置布局方式 self.setLayout(layout) def showTime(self): #获取系统当前时间 time=QDateTime.currentDateTime() #设置系统时间的显示格式 timeDisplay=time.toString('yyyy-MM-dd hh:mm:ss dddd') #在标签上显示时间 self.lable.setText(timeDisplay) def startTimer(self): #设置时间间隔并启动定时器 self.timer.start(1000) #设置开始按钮不可点击,结束按钮可点击 self.startBtn.setEnabled(False) self.endBtn.setEnabled(True) def endTimer(self): #停止定时器 self.timer.stop() #结束按钮不可点击,开始按钮可以点击 self.startBtn.setEnabled(True) self.endBtn.setEnabled(False) if __name__ == '__main__': app=QApplication(sys.argv) form=WinForm() form.show() sys.exit(app.exec_())
运行效果图
代码分析
首先初始化一个定时器,把定时器的timeout信号与showTime()槽函数连接起来
self.timer=QTimer(self) self.timer.timeout.connect(self.showTime)
使用连接的槽函数显示当前时间,并在标签上显示系统当前的时间
def showTime(self): #获取系统当前时间 time=QDateTime.currentDateTime() #设置系统时间的显示格式 timeDisplay=time.toString('yyyy-MM-dd hh:mm:ss dddd') #在标签上显示时间 self.lable.setText(timeDisplay)
单击开始按钮,启动定时器,并使按钮失效
#设置时间间隔并启动定时器 self.timer.start(1000) #设置开始按钮不可点击,结束按钮可点击 self.startBtn.setEnabled(False) self.endBtn.setEnabled(True)
单击结束按钮,停止定时器,并使按钮失效
#停止定时器 self.timer.stop() #结束按钮不可点击,开始按钮可以点击 self.startBtn.setEnabled(True) self.endBtn.setEnabled(False)
QTimer小应用实例
import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * if __name__ == '__main__': app=QApplication(sys.argv) #设置标签以及文本内容 label=QLabel('<font color=red size=128><b>Hello PyQt,窗口会在10秒后消失!</b></font>') #设置无边框窗口 label.setWindowFlags(Qt.SplashScreen|Qt.FramelessWindowHint) label.show() #设置10秒后自动退出 QTimer.singleShot(10000,app.quit) sys.exit(app.exec_())
运行效果如图
代码分析
弹出的窗口会在10秒后消失,模仿程序的启动界面,将弹出的窗口设置为无边框
#设置无边框窗口 label.setWindowFlags(Qt.SplashScreen|Qt.FramelessWindowHint)
使用QTimer设置时间间隔,10秒后退出程序
#设置10秒后自动退出 QTimer.singleShot(10000,app.quit)
本文详细介绍了PyQt5时间控件QTimer详细使用方法与实例,更多关于PyQt5时间控件QTimer方面的知识请查看下面的相关链接
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月02日
2024年11月02日
- lol全球总决赛lck一号种子是谁 S14全球总决赛lck一号种子队伍
- BradMehldau-ApresFaure(2024)[24-96]FLAC
- IlCannone-FrancescaDegoPlaysPaganinisViolin(2021)[24-96]FLAC
- Tchaikovsky,Babajanian-PianoTrios-Gluzman,Moser,Sudbin[FLAC+CUE]
- 费玉清.1987-费玉清十周年旧曲情怀4CD【东尼】【WAV+CUE】
- 群星.2024-春花焰电视剧影视原声带【TME】【FLAC分轨】
- 方力申.2008-我的最爱新曲+精丫金牌大风】【WAV+CUE】
- 群星 《2024好听新歌35》十倍音质 U盘音乐 [WAV分轨][1.1G]
- 群星《烧透你的耳朵1》DXD金佰利 [低速原抓WAV+CUE][1.2G]
- 莫文蔚《超级金曲精选2CD》SONY [WAV+CUE][1.6G]
- 【RR】加尼克奥尔森GarrickOhlsso《贝多芬钢琴协奏曲全集》原声母带WAV
- 彭芳《纯色角1》[WAV+CUE]
- 李蔓《山顶的月亮—李蔓动态情歌》
- 梁咏琪.1999-新鲜【EEI】【WAV+CUE】
- 张琍敏.1979-悲之秋【海山】【FLAC分轨】