[PyQt6] PartⅡ. QLCDNumber Class
QLCDNumber
QTimer
QTime
关键代码
timer = QTimer() # 创建一个QTimer对象,是一个重复单次,触发信号的定时器
timer.timeout.connect(self.showLCD) # 触发条件,即计时器到点,调用showLCD函数
timer.start(1000) # 单位毫秒,即1s。1s更新一次
def showLCD(self):
vbox = QVBoxLayout()
lcd = QLCDNumber()
lcd.setStyleSheet('background: red')
vbox.addWidget(lcd)
time = QTime.currentTime()
text = time.toString('hh:mm')
lcd.display(text)
self.setLayout(vbox)
完整代码
from PyQt6.QtWidgets import *
from PyQt6.QtGui import *
from PyQt6.QtCore import *
import sys
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(200, 200, 700, 400) # 设置窗口大小
self.setWindowTitle("Python QLCDNumber")
self.setWindowIcon(QIcon('python.png')) # 设置图片,没有的话不显示
timer = QTimer() # 创建一个QTimer对象,是一个重复单次,触发信号的定时器
timer.timeout.connect(self.showLCD) # 触发条件,即计时器到点,调用showLCD函数
timer.start(1000) # 单位毫秒,即1s。1s更新一次
self.showLCD()
def showLCD(self):
vbox = QVBoxLayout()
lcd = QLCDNumber()
lcd.setStyleSheet('background: red')
vbox.addWidget(lcd)
time = QTime.currentTime()
text = time.toString('hh:mm')
lcd.display(text)
self.setLayout(vbox)
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec())
用designer设计(1,500)随机数生成器
完整代码
# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt6 UI code generator 6.3.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt6 import QtCore, QtGui, QtWidgets
from random import randint
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(542, 300)
Dialog.setStyleSheet("QLCDNumber{\n"
" background: yellow\n"
"}\n"
"QPushButton{\n"
" background: green\n"
"}\n"
"")
self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
self.verticalLayout.setObjectName("verticalLayout")
self.lcdNumber = QtWidgets.QLCDNumber(Dialog)
self.lcdNumber.setObjectName("lcdNumber")
self.verticalLayout.addWidget(self.lcdNumber)
self.pushButton = QtWidgets.QPushButton(Dialog)
self.pushButton.setObjectName("pushButton")
# connect signal
self.pushButton.clicked.connect(self.random_generator)
self.verticalLayout.addWidget(self.pushButton)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def random_generator(self):
random = randint(1, 500)
self.lcdNumber.display(random)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.pushButton.setText(_translate("Dialog", "Generate Random Number"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec())
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理