气轻PyQt6 18 LCD显示器(QLCDNumber)
本程序与【气轻PyQt6 12】类似,用LCD显示器取代了文本框,效果有所不同。
from PyQt6.QtWidgets import *
from PyQt6.QtGui import QIcon, QPixmap
from PyQt6.QtCore import Qt, QDate, pyqtSignal
import sys
class PyQt618(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('气轻PyQt6') # 设置窗口标题
self.resize(290, 50) # 设置窗口大小
self.setStyleSheet('background-color:#40E0D0')
dateData = QDate.currentDate()
dateLabel = dateData.toString(Qt.DateFormat.ISODate)
self.lcd = QLCDNumber(self)
self.lcd.setGeometry(10, 0,230, 40) # 设置位置和大小
self.lcd.setDigitCount(12) # 设置显示位数
self.lcd.display(dateLabel)
self.lcd.setStyleSheet('background-color:#7A67EE;color : #32CD32; \
font: bold large /"Times New Roman/";font-size:25px')
self.btn = QPushButton('', self)
self.btn.setGeometry(240,0,40,40) # 设置位置和大小
self.btn.setIcon(QIcon(QPixmap('Date.png')))
self.btn.clicked.connect(self.calendarOn)
self.btn.setStyleSheet('background-color:#DAA520')
self.btn.setToolTip('选择日期') # 设置label提示
self.show()
def calendarOn( self ):
self.calWin = CalendarWin()
self.calWin.show()
self.calWin.signal.connect(self.lcd.display) # 连接信号与槽
########################################################@####################
class CalendarWin(QWidget):
signal = pyqtSignal( str ) #定义一个信号
def __init__(self):
super().__init__()
self.setWindowTitle('日期')
cal = QCalendarWidget(self)
cal.setGridVisible(True)
self.setGeometry(800,600,280, 220) # 设置位置和大小
cal.clicked[QDate].connect(self.emitDate) # 按下按钮时发送信号
def emitDate(self,date):
self.signal.emit(date.toString("yyyy-MM-dd"))
self.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = PyQt618()
sys.exit(app.exec())
执行结果
