栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在UI PyQt5中更新时钟和文本

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在UI PyQt5中更新时钟和文本

您不应在主GUI线程中使用time.sleep(),因为它会阻塞事件循环,而应使用QTimer。另一方面,不要修改Qt
Designer生成的代码,而是创建另一个从适当的小部件继承的类,并使用初始类来填充它。

from itertools import cyclefrom PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Reloj(object):    def setupUi(self, Reloj):        Reloj.setObjectName("Reloj")        Reloj.resize(400, 300)        self.centralWidget = QtWidgets.QWidget(Reloj)        self.centralWidget.setObjectName("centralWidget")        self.gridLayout = QtWidgets.QGridLayout(self.centralWidget)        self.gridLayout.setContentsMargins(11, 11, 11, 11)        self.gridLayout.setSpacing(6)        self.gridLayout.setObjectName("gridLayout")        self.Texto = QtWidgets.QLabel(self.centralWidget)        self.Texto.setObjectName("Texto")        self.gridLayout.addWidget(self.Texto, 0, 0, 1, 1)        self.Reloj_2 = QtWidgets.QLCDNumber(self.centralWidget)        self.Reloj_2.setObjectName("Reloj_2")        self.gridLayout.addWidget(self.Reloj_2, 0, 1, 1, 1)        Reloj.setCentralWidget(self.centralWidget)        self.menuBar = QtWidgets.QMenuBar(Reloj)        self.menuBar.setGeometry(QtCore.QRect(0, 0, 400, 20))        self.menuBar.setObjectName("menuBar")        Reloj.setMenuBar(self.menuBar)        self.mainToolBar = QtWidgets.QToolBar(Reloj)        self.mainToolBar.setObjectName("mainToolBar")        Reloj.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar)        self.statusBar = QtWidgets.QStatusBar(Reloj)        self.statusBar.setObjectName("statusBar")        Reloj.setStatusBar(self.statusBar)        self.retranslateUi(Reloj)        QtCore.QmetaObject.connectSlotsByName(Reloj)    def retranslateUi(self, Reloj):        _translate = QtCore.QCoreApplication.translate        Reloj.setWindowTitle(_translate("Reloj", "Reloj"))        self.Texto.setText(_translate("Reloj", "Texto que cambia"))class MainWindow(QtWidgets.QMainWindow, Ui_Reloj):    def __init__(self, parent=None):        super().__init__(parent)        self.setupUi(self)        timer1 = QtCore.QTimer(self, interval=1000, timeout=self.showTime)        timer1.start()        self.showTime()        vec = ["Hola", "Que Tal?", "No se toca", "paradise"]        self.texts = cycle(vec)        timer2 = QtCore.QTimer(self, interval=15 * 1000, timeout=self.cambiar_texto)        timer2.start()        self.cambiar_texto()    @QtCore.pyqtSlot()    def showTime(self):        time = QtCore.QTime.currentTime()        text = time.toString("HH mm" if time.second() % 2 == 0 else "HH:mm")        self.Reloj_2.display(text)    @QtCore.pyqtSlot()    def cambiar_texto(self):        text = next(self.texts)        self.Texto.setText(text)if __name__ == "__main__":    import sys    app = QtWidgets.QApplication(sys.argv)    w = MainWindow()    w.show()    sys.exit(app.exec_())


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626638.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号