<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 4191字,需瀏覽 9分鐘

           ·

          2021-12-12 11:21

          點擊上方藍(lán)色字體,關(guān)注我們



          1


          QCalendar日歷類



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


          Qt Company中日歷組件效果


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



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



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


          實現(xiàn)代碼如下所示:


          import sysfrom PyQt5 import QtCorefrom 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類來設(shè)置或獲取時間,也不要用QTimeEdit類來設(shè)置或獲取日期。如果要同時操作日期時間,請使用QDateTimeEdit類。


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


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


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



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


          實現(xiàn)代碼如下所示:


          import sysfrom 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") # 設(shè)置最小日期 self.dateEdit.setMinimumDate(QDate.currentDate().addDays(-365)) # 設(shè)置最大日期 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)
          # 日期發(fā)生改變時執(zhí)行 def onDateChanged(self , date): print(date)
          # 無論日期還是時間發(fā)生改變,都會執(zhí)行 def onDateTimeChanged(self , dateTime ): print(dateTime)
          # 時間發(fā)生改變時執(zhí)行 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_())


          往期推薦



          點擊閱讀原文,更精彩~
          瀏覽 60
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩特黄 | 女人黄色A级毛片 | 国产成人黄色毛片不卡在线看 | 精品无码一区二区三区四区五区 | 一级一级a爰片免费看在线 |