gpt4 book ai didi

python - 向 GUI 添加一个简单的时钟

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:25 24 4
gpt4 key购买 nike

我有一些代码用于非常通用/空白的 GUI,其中包含一些标签和按钮以及一个 LCD 小部件。我还有一些用于单独窗口的代码,它只使用 LCD 小部件来显示时间。我的问题是如何将时钟代码插入到通用 GUI 代码中以使 LCD 小部件显示时间?

from PyQt5.QtCore import QTime, QTimer
from PyQt5.QtWidgets import QApplication, QLCDNumber
class DigitalClock(QLCDNumber):

def __init__(self, parent=None):
super(DigitalClock, self).__init__(parent)
self.setSegmentStyle(QLCDNumber.Filled)
timer = QTimer(self)
timer.timeout.connect(self.showTime)
timer.start(1000)
self.showTime()
self.setWindowTitle("Digital Clock")
self.resize(150, 60)

def showTime(self):
time = QTime.currentTime()
text = time.toString('hh:mm')
if (time.second() % 2) == 0:
text = text[:2] + ' ' + text[3:]
self.display(text)

if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
clock = DigitalClock()
clock.show()
sys.exit(app.exec_())

这是简单时钟的代码,我想将其插入到下面的代码中,使 LCD 小部件像这样显示时间:

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_mainWindow(object):
def setupUi(self, mainWindow):
mainWindow.setObjectName("mainWindow")
mainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(mainWindow)
self.centralwidget.setObjectName("centralwidget")
self.Clock = QtWidgets.QWidget(self.centralwidget)
self.Clock.setGeometry(QtCore.QRect(60, 420, 120, 80))
self.Clock.setObjectName("Clock")
self.DigitalClock = QtWidgets.QLCDNumber(self.centralwidget)
self.DigitalClock.setGeometry(QtCore.QRect(110, 190, 64, 23))
self.DigitalClock.setDigitCount(8)
self.DigitalClock.setObjectName("DigitalClock")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(100, 60, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(100, 110, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(100, 150, 75, 23))
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_4.setGeometry(QtCore.QRect(230, 60, 75, 23))
self.pushButton_4.setObjectName("pushButton_4")
self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_5.setGeometry(QtCore.QRect(220, 100, 75, 23))
self.pushButton_5.setObjectName("pushButton_5")
self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_6.setGeometry(QtCore.QRect(230, 150, 75, 23))
self.pushButton_6.setObjectName("pushButton_6")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(20, 60, 47, 13))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(20, 120, 47, 13))
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(20, 160, 47, 13))
self.label_3.setObjectName("label_3")
mainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(mainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName("menubar")
mainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(mainWindow)
self.statusbar.setObjectName("statusbar")
mainWindow.setStatusBar(self.statusbar)

self.retranslateUi(mainWindow)
QtCore.QMetaObject.connectSlotsByName(mainWindow)

def retranslateUi(self, mainWindow):
_translate = QtCore.QCoreApplication.translate
mainWindow.setWindowTitle(_translate("mainWindow", "Sim Monitor"))
self.pushButton.setText(_translate("mainWindow", "PushButton"))
self.pushButton_2.setText(_translate("mainWindow", "PushButton"))
self.pushButton_3.setText(_translate("mainWindow", "PushButton"))
self.pushButton_4.setText(_translate("mainWindow", "PushButton"))
self.pushButton_5.setText(_translate("mainWindow", "PushButton"))
self.pushButton_6.setText(_translate("mainWindow", "PushButton"))
self.label.setText(_translate("mainWindow", "TextLabel"))
self.label_2.setText(_translate("mainWindow", "TextLabel"))
self.label_3.setText(_translate("mainWindow", "TextLabel"))


if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Ui_mainWindow()
ui.setupUi(mainWindow)
mainWindow.show()
sys.exit(app.exec_())

最佳答案

简单的解决方案:

假设第一个文件名为DigitalClock.py,第二个文件名为main.py,那么只需将导入添加到main.py 并更改 QLCDNumber 创建的行:

主.py

from DigitalClock import DigitalClock
# ...
self.DigitalClock = DigitalClock(self.centralwidget) # QtWidgets.QLCDNumber(self.centralwidget)

长解:

提升QLCDNumber使用DigitalClock,可以引用这个other answer在这里您可以将 QVideoWidget 与 DigitalClock 交换,将 PyQt5.QtMultimediaWidgets 与 DigitalClock 交换。

另一种方法是创建一个小部件插件,以便它可以直接在 Qt Designer 中使用。

关于python - 向 GUI 添加一个简单的时钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48168432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com