氣輕PyQt5 16動態(tài)添加刪除控件
?
點擊按鈕后,會在界面內(nèi)添加日歷控件。選擇日期后,將選擇結(jié)果傳遞給文本框后,日歷控件將被刪除。
?
from PyQt5 import QtCore, QtGui
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QFont, QIcon, QPixmap
from PyQt5.QtCore import Qt, QDate, QSize
import sys
import datetime
?
class PyQt516(QWidget):
??? def __init__(self):
??????? super().__init__()
??????? self.cal = None
??????? self.initUI()
??? def initUI(self):
??????? self.setWindowTitle('氣輕PyQt5')???????? ???????# 設置窗口標題
??????? self.resize(290, 220)?????????????????????????? # 設置窗口大小
?
??????? dateData = datetime.datetime.now().date()
??????? dateLabel = dateData.strftime('%Y-%m-%d')
??????? self.edit = QLineEdit(self)???????????????????? # 輸入框
??????? self.edit.setGeometry(10, 0,230, 40)??????????? # 設置位置和大小
??????? self.edit.setText(dateLabel)
??????? self.edit.setReadOnly(True)???????????????????? # 只讀
??????? self.edit.setAlignment(Qt.AlignCenter)????????? # 居中設置
??????? self.edit.setStyleSheet('background-color:#FFE4B5;color : #32CD32; \
??????????????????? font: bold italic 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.setIconSize(QSize(36,36))
??????? self.btn.clicked.connect(self.calendarOn)
??????? self.btn.setStyleSheet('background-color:#DAA520')
?
??????? self.show()
?
??? def calendarOn( self ):
??????? if self.cal != None:
??????????? return
?
??????? self.cal = QCalendarWidget(self)
??????? self.cal.setGridVisible(True)
??????? self.cal.setGeometry(10, 60,270, 140)?????????? # 設置位置和大小
??????? 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 = PyQt516()
??? sys.exit(app.exec_())
?
執(zhí)行結(jié)果
參照【氣輕PyQt6 16動態(tài)添加刪除控件】