氣輕PyQt6 25 二級菜單
?
import sys
from PyQt6.QtWidgets import *
from PyQt6.QtGui import QAction, QIcon, QPixmap
from PyQt6.QtCore import Qt, QDate, QSize
import datetime
?
?
class PyQt625(QMainWindow):
?
??? def __init__(self):
??????? super().__init__()
??????? self.cal = None
??????? self.initUI()
?
?
??? def initUI(self):
??????? self.setGeometry(300, 300, 320, 290)
??????? self.setWindowTitle('氣輕PyQt6')??????????????? # 設(shè)置窗口標(biāo)題
??????? self.setStyleSheet('background-color:#7AC5CD')
?
??????? quit = QAction('&退出', self)
??????? quit.setShortcut('Ctrl+Q')
??????? quit.triggered.connect(QApplication.instance().quit)
?
??????? cal = QAction('&選擇日期', self)
??????? cal.setShortcut('Ctrl+C')
? ??????cal.triggered.connect(self.calendarOn)
?
??????? self.statusBar()
?
??????? menubar = self.menuBar()
??????? menubar.setStyleSheet('background-color:#98F5FF;color : #32CD32; \
??????????????????? font: large /"SimSun/";font-size:20px')
??????? fileMenu = menubar.addMenu('&File')
??????? fileMenu.addAction(cal)
??????? fileMenu.addAction(quit)
?
??????? opt1 = QAction("早飯前", self)
??????? opt1.triggered.connect(self.updateLabel)
??????? opt2 = QAction("晚飯后", self)
??????? opt2.triggered.connect(self.updateLabel)
?
??????? edit = menubar.addMenu("Edit")
??????? subMenu = edit.addMenu("選擇時段")
??????? subMenu.addAction(opt1)
??????? subMenu.addAction(opt2)
?
??????? dateData = datetime.datetime.now().date()
??????? dateLabel = dateData.strftime('%Y-%m-%d')
??????? self.edit = QLineEdit(self)???????????????????? # 輸入框
??????? self.edit.setGeometry(10, 40,180, 40)??????????? # 設(shè)置位置和大小
??????? self.edit.setText(dateLabel)
??????? self.edit.setReadOnly(True)???????????????????? # 只讀
??????? self.edit.setAlignment(Qt.AlignmentFlag.AlignHCenter)# 居中設(shè)置
??????? self.edit.setStyleSheet('background-color:#2F4F4F;color : #32CD32; \
??????????????????? font: large /"SimSun/";font-size:25px')
?
??????? self.btn = QPushButton('', self)
??????? self.btn.setGeometry(190,40,40,40)?????????????? # 設(shè)置位置和大小
??????? self.btn.setIcon(QIcon(QPixmap('F:/Data/Image/icon/Date.png')))
??????? self.btn.setIconSize(QSize(36,36))
??????? self.btn.clicked.connect(self.calendarOn)
??????? self.btn.setStyleSheet('background-color:#DAA520')
?
? ??????self.tag = QLabel(self)???????????????????????? # 設(shè)置label信息
??????? self.tag.setGeometry(230, 40,80, 40)???????????? # 設(shè)置位置和大小
??????? self.tag.setText('早飯前')
??????? self.tag.setStyleSheet('background-color:#2F4F4F;color : #32CD32; \
?????????????? ?????font: large /"SimSun/";font-size:25px')
?
??????? self.show()
?
??? def updateLabel(self, a):
??????? self.tag.setText(self.sender().text())
?
??? def calendarOn( self ):
??????? if self.cal != None:
??????????? return
?
??????? self.cal = QCalendarWidget(self)
??????? self.cal.setGridVisible(True)
??????? self.cal.setGeometry(10, 120,270, 140)????????? # 設(shè)置位置和大小
??????? self.cal.clicked[QDate].connect(self.updateDate)
?
??????? self.cal.show()???????????????????????????????? # 顯示日歷控件
?
??? def updateDate(self,date):
??????? self.edit.setText(date.toString("yyyy-MM-dd"))
??????? self.cal.deleteLater()????????????????????????? # 刪除日歷控件
??????? self.cal = None
?
if __name__ == '__main__':
??? app = QApplication(sys.argv)
??? window = PyQt625()
??? sys.exit(app.exec())
?
執(zhí)行結(jié)果
