Python Qt GUI設計:QCalendar日歷類和QDateTimeEdit時間類(基礎篇—20)

      網友投稿 968 2025-04-01

      目錄


      1、QCalendar日歷類

      2、QDateTimeEdit時間類

      1、QCalendar日歷類

      Python Qt GUI設計:QCalendar日歷類和QDateTimeEdit時間類(基礎篇—20)

      QCalendar是一個日歷控件,它提供了一個基于月份的視圖,允許用戶通過鼠標或鍵盤選擇日期,默認選中的是今天的日期。也可以對日歷的日期范圍進行規定。

      Qt Company中日歷組件效果

      QCalendar類中的常用方法如下表所示:

      通個示例了解QCalendar日歷類,示例效果如下所示:

      示例中有日歷控件和標簽控件,當前選定的日期顯示在標簽控件中。創建QCalendarWidget組件,并設置該日歷控件的最大日期和最小日期。從窗口組件中選定一個日期,會發射一個QCore.QDate信號,將此信號連接到用戶定義的showDate()槽函數。通過調用selectedDate()方法檢索所選定的日期,然后將日期對象轉換為指定格式字符串并將其設置為標簽控件內容。

      實現代碼如下所示:

      import sys from PyQt5 import QtCore from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import QDate class CalendarExample( QWidget): def __init__(self): super(CalendarExample, self).__init__() self.initUI() def initUI(self): self.cal = QCalendarWidget(self) self.cal.setMinimumDate(QDate(1980, 1, 1)) self.cal.setMaximumDate(QDate(3000, 1, 1)) self.cal.setGridVisible(True) self.cal.move(20, 20) self.cal.clicked[QtCore.QDate].connect(self.showDate) self.lbl = QLabel(self) date = self.cal.selectedDate() self.lbl.setText(date.toString("yyyy-MM-dd dddd")) self.lbl.move(20, 300) self.setGeometry(100,100,400,350) self.setWindowTitle('Calendar 例子') def showDate(self, date): self.lbl.setText(date.toString("yyyy-MM-dd dddd") ) if __name__ == '__main__': app = QApplication(sys.argv) demo = CalendarExample() demo.show() sys.exit(app.exec_())

      2、QDateTimeEdit時間類

      QDateTimeEdit是一個允許用戶編輯日期時間的控件,可以使用鍵盤和上、下箭頭按鈕來增加或減少日期時間值。

      Qt Company中時間組件效果

      QDateTimeEdit類中的常用方法如下表所示:

      QDateTimeEdit類中的常用信號如下表所示:

      QDateTimeEdit類中包含QDateEdit類和QTimeEdit類,QDateEdit類用來編輯控件的日期,僅包括年、月和日;QTimeEdit用來編輯控件的時間,僅包括小時、分鐘和秒。

      不要用QDateEdit類來設置或獲取時間,也不要用QTimeEdit類來設置或獲取日期。如果要同時操作日期時間,請使用QDateTimeEdit類。

      設置彈出日歷時要注意:用來彈出日歷的類只有QDateTimeEdit類和QDateEdit類,而QTimeEdit類雖然在語法上可以設置彈出日歷,但不起作用。

      在默認情況下,如果QDateTimeEdit類構造時不指定日期時間,那么系統會為其設置一個和本地相同的日期時間格式,并且值為2000年1月1日0時0分0秒,也可以手動指定控件顯示的日期時間。

      通過示例了解QDateTimeEdit時間類,示例效果如下所示:

      在這個例子中有QDateTimeEdit控件和按鈕控件,當單擊“獲得日期和時間"按鈕時,會獲得當前的日期和時間。

      實現代碼如下所示:

      import sys from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import QDate, QDateTime , QTime class DateTimeEditDemo(QWidget): def __init__(self): super(DateTimeEditDemo, self).__init__() self.initUI() def initUI(self): self.setWindowTitle('QDateTimeEdit例子') self.resize(300, 90) vlayout = QVBoxLayout() self.dateEdit = QDateTimeEdit(QDateTime.currentDateTime(), self) self.dateEdit.setDisplayFormat("yyyy-MM-dd HH:mm:ss") # 設置最小日期 self.dateEdit.setMinimumDate(QDate.currentDate().addDays(-365)) # 設置最大日期 self.dateEdit.setMaximumDate(QDate.currentDate().addDays(365)) self.dateEdit.setCalendarPopup( True) self.dateEdit.dateChanged.connect(self.onDateChanged) self.dateEdit.dateTimeChanged.connect(self.onDateTimeChanged) self.dateEdit.timeChanged.connect(self.onTimeChanged) self.btn = QPushButton('獲得日期和時間') self.btn.clicked.connect(self.onButtonClick) vlayout.addWidget( self.dateEdit ) vlayout.addWidget( self.btn ) self.setLayout(vlayout) # 日期發生改變時執行 def onDateChanged(self , date): print(date) # 無論日期還是時間發生改變,都會執行 def onDateTimeChanged(self , dateTime ): print(dateTime) # 時間發生改變時執行 def onTimeChanged(self , time): print(time) def onButtonClick(self ): dateTime = self.dateEdit.dateTime() # 最大日期 maxDate = self.dateEdit.maximumDate() # 最大日期時間 maxDateTime = self.dateEdit.maximumDateTime() # 最大時間 maxTime = self.dateEdit.maximumTime() # 最小日期 minDate = self.dateEdit.minimumDate() # 最小日期時間 minDateTime = self.dateEdit.minimumDateTime() # 最小時間 minTime = self.dateEdit.minimumTime() print('\n選擇日期時間' ) print('dateTime=%s' % str(dateTime) ) print('maxDate=%s' % str(maxDate) ) print('maxDateTime=%s' % str(maxDateTime) ) print('maxTime=%s' % str(maxTime) ) print('minDate=%s' % str(minDate) ) print('minDateTime=%s' % str(minDateTime) ) print('minTime=%s' % str(minTime) ) if __name__ == '__main__': app = QApplication(sys.argv) demo = DateTimeEditDemo() demo.show() sys.exit(app.exec_())

      GUI Python Qt

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何設置表格里有小數的留一位,沒小數的不留(表格設置保留一位小數)
      下一篇:wps表格如何添加豎線(wps怎么在表格中加一豎線)
      相關文章
      亚洲成片观看四虎永久| 狼人大香伊蕉国产WWW亚洲| 亚洲一区二区精品视频| 亚洲妇女无套内射精| 亚洲中文字幕日本无线码| 亚洲AV无码专区在线亚| 亚洲永久中文字幕在线| 亚洲欧洲校园自拍都市| 亚洲精品综合久久中文字幕| 亚洲精品国产肉丝袜久久| 亚洲最大免费视频网| 亚洲成a人片在线观| 亚洲激情校园春色| 亚洲区精品久久一区二区三区| 亚洲午夜精品一区二区公牛电影院 | 日本亚洲欧美色视频在线播放| 亚洲欧美黑人猛交群| 亚洲女女女同性video| 亚洲av无码专区国产不乱码| 亚洲1区2区3区精华液| 国产精品亚洲va在线观看| 亚洲国产成人影院播放| 亚洲精品视频在线观看你懂的| 亚洲性在线看高清h片| 亚洲熟妇丰满多毛XXXX| 久久久综合亚洲色一区二区三区| 亚洲∧v久久久无码精品| 中文字幕亚洲精品资源网| 亚洲国产av美女网站| 亚洲色在线无码国产精品不卡| 亚洲成a∧人片在线观看无码 | 亚洲国产成人久久综合一 | 亚洲欧洲日产国产综合网| 亚洲精品在线免费观看| 国产亚洲精aa在线看| 国产AV无码专区亚洲AV蜜芽| 国产日产亚洲系列最新| 亚洲av最新在线网址| 亚洲日本视频在线观看| 亚洲熟妇AV一区二区三区宅男| 亚洲国产黄在线观看|