[{"data":1,"prerenderedAt":1625},["ShallowReactive",2],{"post-2025-08-27-pyqt5":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"tags":11,"body":15,"_type":1619,"_id":1620,"_source":1621,"_file":1622,"_stem":1623,"_extension":1624},"\u002Fblog\u002F2025-08-27-pyqt5","blog",false,"","PyQt5-日期时间类控件","PyQt5日期时间类控件：CalendarWidget、DateTimeEdit、Timer等。","2025-08-27",[12,13,14],"Python","PyQt5","GUI",{"type":16,"children":17,"toc":1614},"root",[18,58,65,69,171,181,508,549,554,620,646,655,738,743,753,766,779,782,792,810,1109,1127,1135,1193,1271,1299,1460,1472,1480,1485,1493,1608],{"type":19,"tag":20,"props":21,"children":22},"element","p",{},[23,26,33,35,41,42,48,50,56],{"type":24,"value":25},"text","日期时间类控件主要是对日期、时间等信息进行编辑、选择或者显示，在PyQt5中提供了",{"type":19,"tag":27,"props":28,"children":30},"code",{"className":29},[],[31],{"type":24,"value":32},"Date\u002FTimeEdit",{"type":24,"value":34},"、",{"type":19,"tag":27,"props":36,"children":38},{"className":37},[],[39],{"type":24,"value":40},"DateEdit",{"type":24,"value":34},{"type":19,"tag":27,"props":43,"children":45},{"className":44},[],[46],{"type":24,"value":47},"TimeEdit",{"type":24,"value":49},"和",{"type":19,"tag":27,"props":51,"children":53},{"className":52},[],[54],{"type":24,"value":55},"CalendarWidget",{"type":24,"value":57},"等4个相关的控件，本节将对它们的常用方法和使用方式进行讲解。",{"type":19,"tag":59,"props":60,"children":62},"h2",{"id":61},"_1日期和时间控件",[63],{"type":24,"value":64},"1  日期和时间控件",{"type":19,"tag":66,"props":67,"children":68},"hr",{},[],{"type":19,"tag":20,"props":70,"children":71},{},[72,74,79,81,86,88,93,95,100,102,108,110,116,118,123,124,130,132,137,139,144,145,150,151,157,158,163,164,169],{"type":24,"value":73},"PyQt5中提供了3个日期时间控件，分别是",{"type":19,"tag":27,"props":75,"children":77},{"className":76},[],[78],{"type":24,"value":32},{"type":24,"value":80},"控件、",{"type":19,"tag":27,"props":82,"children":84},{"className":83},[],[85],{"type":24,"value":40},{"type":24,"value":87},"控件和",{"type":19,"tag":27,"props":89,"children":91},{"className":90},[],[92],{"type":24,"value":47},{"type":24,"value":94},"控件，其中，",{"type":19,"tag":27,"props":96,"children":98},{"className":97},[],[99],{"type":24,"value":32},{"type":24,"value":101},"控件对应的类是",{"type":19,"tag":27,"props":103,"children":105},{"className":104},[],[106],{"type":24,"value":107},"QDateTimeEdit",{"type":24,"value":109},"，该控件可以",{"type":19,"tag":111,"props":112,"children":113},"strong",{},[114],{"type":24,"value":115},"同时显示和编辑日期时间",{"type":24,"value":117},"；",{"type":19,"tag":27,"props":119,"children":121},{"className":120},[],[122],{"type":24,"value":40},{"type":24,"value":101},{"type":19,"tag":27,"props":125,"children":127},{"className":126},[],[128],{"type":24,"value":129},"QDateEdit",{"type":24,"value":131},"，它是",{"type":19,"tag":27,"props":133,"children":135},{"className":134},[],[136],{"type":24,"value":107},{"type":24,"value":138},"的子类，",{"type":19,"tag":111,"props":140,"children":141},{},[142],{"type":24,"value":143},"只能显示和编辑日期",{"type":24,"value":117},{"type":19,"tag":27,"props":146,"children":148},{"className":147},[],[149],{"type":24,"value":47},{"type":24,"value":101},{"type":19,"tag":27,"props":152,"children":154},{"className":153},[],[155],{"type":24,"value":156},"QTimeEdit",{"type":24,"value":131},{"type":19,"tag":27,"props":159,"children":161},{"className":160},[],[162],{"type":24,"value":107},{"type":24,"value":138},{"type":19,"tag":111,"props":165,"children":166},{},[167],{"type":24,"value":168},"只能显示和编辑时间",{"type":24,"value":170},"。",{"type":19,"tag":20,"props":172,"children":173},{},[174,179],{"type":19,"tag":27,"props":175,"children":177},{"className":176},[],[178],{"type":24,"value":107},{"type":24,"value":180},"类的常用方法及说明如表所示。",{"type":19,"tag":182,"props":183,"children":184},"table",{},[185,210],{"type":19,"tag":186,"props":187,"children":188},"thead",{},[189],{"type":19,"tag":190,"props":191,"children":192},"tr",{},[193,202],{"type":19,"tag":194,"props":195,"children":196},"th",{},[197],{"type":19,"tag":111,"props":198,"children":199},{},[200],{"type":24,"value":201},"方    法",{"type":19,"tag":194,"props":203,"children":204},{},[205],{"type":19,"tag":111,"props":206,"children":207},{},[208],{"type":24,"value":209},"说    明",{"type":19,"tag":211,"props":212,"children":213},"tbody",{},[214,228,241,254,300,313,326,339,352,469,482,495],{"type":19,"tag":190,"props":215,"children":216},{},[217,223],{"type":19,"tag":218,"props":219,"children":220},"td",{},[221],{"type":24,"value":222},"setTime()",{"type":19,"tag":218,"props":224,"children":225},{},[226],{"type":24,"value":227},"设置时间，默认为0:00:00",{"type":19,"tag":190,"props":229,"children":230},{},[231,236],{"type":19,"tag":218,"props":232,"children":233},{},[234],{"type":24,"value":235},"setMaximumTime()",{"type":19,"tag":218,"props":237,"children":238},{},[239],{"type":24,"value":240},"设置最大时间，默认为23:59:59",{"type":19,"tag":190,"props":242,"children":243},{},[244,249],{"type":19,"tag":218,"props":245,"children":246},{},[247],{"type":24,"value":248},"setMinimumTime()",{"type":19,"tag":218,"props":250,"children":251},{},[252],{"type":24,"value":253},"设置最小时间，默认为0:00:00",{"type":19,"tag":190,"props":255,"children":256},{},[257,262],{"type":19,"tag":218,"props":258,"children":259},{},[260],{"type":24,"value":261},"setTimeSpec()",{"type":19,"tag":218,"props":263,"children":264},{},[265,267,271,274,276,279,282,284,287,290,292,295,298],{"type":24,"value":266},"获取显示的时间标准，支持以下4种取值：",{"type":19,"tag":268,"props":269,"children":270},"br",{},[],{"type":19,"tag":268,"props":272,"children":273},{},[],{"type":24,"value":275},"◆ LocalTime：本地时间",{"type":19,"tag":268,"props":277,"children":278},{},[],{"type":19,"tag":268,"props":280,"children":281},{},[],{"type":24,"value":283},"◆ UTC：世界标准时间",{"type":19,"tag":268,"props":285,"children":286},{},[],{"type":19,"tag":268,"props":288,"children":289},{},[],{"type":24,"value":291},"◆ OffsetFromUTC：与UTC等效的时间",{"type":19,"tag":268,"props":293,"children":294},{},[],{"type":19,"tag":268,"props":296,"children":297},{},[],{"type":24,"value":299},"◆ TimeZone：时区",{"type":19,"tag":190,"props":301,"children":302},{},[303,308],{"type":19,"tag":218,"props":304,"children":305},{},[306],{"type":24,"value":307},"setDateTime()",{"type":19,"tag":218,"props":309,"children":310},{},[311],{"type":24,"value":312},"设置日期时间，默认为2000\u002F1\u002F1 0:00:00",{"type":19,"tag":190,"props":314,"children":315},{},[316,321],{"type":19,"tag":218,"props":317,"children":318},{},[319],{"type":24,"value":320},"setDate()",{"type":19,"tag":218,"props":322,"children":323},{},[324],{"type":24,"value":325},"设置日期，默认为2000\u002F1\u002F1",{"type":19,"tag":190,"props":327,"children":328},{},[329,334],{"type":19,"tag":218,"props":330,"children":331},{},[332],{"type":24,"value":333},"setMaximumDate()",{"type":19,"tag":218,"props":335,"children":336},{},[337],{"type":24,"value":338},"设置最大日期，默认为9999\u002F12\u002F31",{"type":19,"tag":190,"props":340,"children":341},{},[342,347],{"type":19,"tag":218,"props":343,"children":344},{},[345],{"type":24,"value":346},"setMinimumDate()",{"type":19,"tag":218,"props":348,"children":349},{},[350],{"type":24,"value":351},"设置最小日期，默认为1752\u002F9\u002F14",{"type":19,"tag":190,"props":353,"children":354},{},[355,360],{"type":19,"tag":218,"props":356,"children":357},{},[358],{"type":24,"value":359},"setDisplayFormat()",{"type":19,"tag":218,"props":361,"children":362},{},[363,365,368,371,373,376,379,381,384,387,389,392,395,397,400,403,405,408,411,413,416,419,421,424,427,429,432,435,437,440,443,445,448,451,453,456,459,461,464,467],{"type":24,"value":364},"设置日期时间显示样式，常见形式如下：",{"type":19,"tag":268,"props":366,"children":367},{},[],{"type":19,"tag":268,"props":369,"children":370},{},[],{"type":24,"value":372},"◆ 日期样式（yyyy表示4位数年份；MM表示2位数月份，dd表示2位数日）：",{"type":19,"tag":268,"props":374,"children":375},{},[],{"type":19,"tag":268,"props":377,"children":378},{},[],{"type":24,"value":380},"■  yyyy\u002FMM\u002Fdd",{"type":19,"tag":268,"props":382,"children":383},{},[],{"type":19,"tag":268,"props":385,"children":386},{},[],{"type":24,"value":388},"■  yyyy\u002FM\u002Fd",{"type":19,"tag":268,"props":390,"children":391},{},[],{"type":19,"tag":268,"props":393,"children":394},{},[],{"type":24,"value":396},"■  yy\u002FMM\u002Fdd",{"type":19,"tag":268,"props":398,"children":399},{},[],{"type":19,"tag":268,"props":401,"children":402},{},[],{"type":24,"value":404},"■  yy\u002FM\u002Fd",{"type":19,"tag":268,"props":406,"children":407},{},[],{"type":19,"tag":268,"props":409,"children":410},{},[],{"type":24,"value":412},"■  yy\u002FMM",{"type":19,"tag":268,"props":414,"children":415},{},[],{"type":19,"tag":268,"props":417,"children":418},{},[],{"type":24,"value":420},"■  Mm\u002Fdd",{"type":19,"tag":268,"props":422,"children":423},{},[],{"type":19,"tag":268,"props":425,"children":426},{},[],{"type":24,"value":428},"◆ 时间样式（HH表示2位数小时；mm表示2位数分钟，ss表示2位数秒钟）：",{"type":19,"tag":268,"props":430,"children":431},{},[],{"type":19,"tag":268,"props":433,"children":434},{},[],{"type":24,"value":436},"■  HH:mm:ss",{"type":19,"tag":268,"props":438,"children":439},{},[],{"type":19,"tag":268,"props":441,"children":442},{},[],{"type":24,"value":444},"■  HH:mm",{"type":19,"tag":268,"props":446,"children":447},{},[],{"type":19,"tag":268,"props":449,"children":450},{},[],{"type":24,"value":452},"■  mm:ss",{"type":19,"tag":268,"props":454,"children":455},{},[],{"type":19,"tag":268,"props":457,"children":458},{},[],{"type":24,"value":460},"■  H:m",{"type":19,"tag":268,"props":462,"children":463},{},[],{"type":19,"tag":268,"props":465,"children":466},{},[],{"type":24,"value":468},"■  m:s",{"type":19,"tag":190,"props":470,"children":471},{},[472,477],{"type":19,"tag":218,"props":473,"children":474},{},[475],{"type":24,"value":476},"date()",{"type":19,"tag":218,"props":478,"children":479},{},[480],{"type":24,"value":481},"获取显示的日期，返回值为QDate类型，例如QDate(2000,1,1)",{"type":19,"tag":190,"props":483,"children":484},{},[485,490],{"type":19,"tag":218,"props":486,"children":487},{},[488],{"type":24,"value":489},"time()",{"type":19,"tag":218,"props":491,"children":492},{},[493],{"type":24,"value":494},"获取显示的时间，返回值为QTime类型，例如QTime(0,0)",{"type":19,"tag":190,"props":496,"children":497},{},[498,503],{"type":19,"tag":218,"props":499,"children":500},{},[501],{"type":24,"value":502},"dateTime()",{"type":19,"tag":218,"props":504,"children":505},{},[506],{"type":24,"value":507},"获取显示的日期时间，返回值为QDateTime类型，例如QDateTime(2000, 1, 1, 0, 0)",{"type":19,"tag":509,"props":510,"children":511},"blockquote",{},[512],{"type":19,"tag":20,"props":513,"children":514},{},[515,520,522,527,528,533,535,540,542,547],{"type":19,"tag":111,"props":516,"children":517},{},[518],{"type":24,"value":519},"Info:",{"type":24,"value":521}," 说明\n由于",{"type":19,"tag":27,"props":523,"children":525},{"className":524},[],[526],{"type":24,"value":129},{"type":24,"value":49},{"type":19,"tag":27,"props":529,"children":531},{"className":530},[],[532],{"type":24,"value":156},{"type":24,"value":534},"类都是从",{"type":19,"tag":27,"props":536,"children":538},{"className":537},[],[539],{"type":24,"value":107},{"type":24,"value":541},"类继承而来的，因此它们都拥有",{"type":19,"tag":27,"props":543,"children":545},{"className":544},[],[546],{"type":24,"value":107},{"type":24,"value":548},"类的所有公共方法。",{"type":19,"tag":20,"props":550,"children":551},{},[552],{"type":24,"value":553},"QDateTimeEdit类的常用信号及说明如表所示。",{"type":19,"tag":182,"props":555,"children":556},{},[557,578],{"type":19,"tag":186,"props":558,"children":559},{},[560],{"type":19,"tag":190,"props":561,"children":562},{},[563,571],{"type":19,"tag":194,"props":564,"children":565},{},[566],{"type":19,"tag":111,"props":567,"children":568},{},[569],{"type":24,"value":570},"信    号",{"type":19,"tag":194,"props":572,"children":573},{},[574],{"type":19,"tag":111,"props":575,"children":576},{},[577],{"type":24,"value":209},{"type":19,"tag":211,"props":579,"children":580},{},[581,594,607],{"type":19,"tag":190,"props":582,"children":583},{},[584,589],{"type":19,"tag":218,"props":585,"children":586},{},[587],{"type":24,"value":588},"timeChanged",{"type":19,"tag":218,"props":590,"children":591},{},[592],{"type":24,"value":593},"时间发生改变时发射",{"type":19,"tag":190,"props":595,"children":596},{},[597,602],{"type":19,"tag":218,"props":598,"children":599},{},[600],{"type":24,"value":601},"dateChanged",{"type":19,"tag":218,"props":603,"children":604},{},[605],{"type":24,"value":606},"日期发生改变时发射",{"type":19,"tag":190,"props":608,"children":609},{},[610,615],{"type":19,"tag":218,"props":611,"children":612},{},[613],{"type":24,"value":614},"dateTimeChanged",{"type":19,"tag":218,"props":616,"children":617},{},[618],{"type":24,"value":619},"日期或者时间发生改变时发射",{"type":19,"tag":20,"props":621,"children":622},{},[623,625,630,632,637,639,644],{"type":24,"value":624},"例如，在Qt Designer设计器的窗口中分别添加一个",{"type":19,"tag":27,"props":626,"children":628},{"className":627},[],[629],{"type":24,"value":32},{"type":24,"value":631},"控件、一个",{"type":19,"tag":27,"props":633,"children":635},{"className":634},[],[636],{"type":24,"value":40},{"type":24,"value":638},"控件和一个",{"type":19,"tag":27,"props":640,"children":642},{"className":641},[],[643],{"type":24,"value":47},{"type":24,"value":645},"控件，它们的显示效果如图所示。",{"type":19,"tag":20,"props":647,"children":648},{},[649],{"type":19,"tag":650,"props":651,"children":654},"img",{"alt":652,"src":653},"Pasted image 20250901201046","\u002Fimages\u002Fblog\u002Fpyqt5\u002FPasted%20image%2020250901201046.png",[],{"type":19,"tag":509,"props":656,"children":657},{},[658,719],{"type":19,"tag":20,"props":659,"children":660},{},[661,666,668,673,674,679,680,685,687,693,695,701,703,709,711,717],{"type":19,"tag":111,"props":662,"children":663},{},[664],{"type":24,"value":665},"Tip:",{"type":24,"value":667}," 多学两招\n1）由于",{"type":19,"tag":27,"props":669,"children":671},{"className":670},[],[672],{"type":24,"value":476},{"type":24,"value":34},{"type":19,"tag":27,"props":675,"children":677},{"className":676},[],[678],{"type":24,"value":489},{"type":24,"value":49},{"type":19,"tag":27,"props":681,"children":683},{"className":682},[],[684],{"type":24,"value":502},{"type":24,"value":686},"方法的返回值分别是",{"type":19,"tag":27,"props":688,"children":690},{"className":689},[],[691],{"type":24,"value":692},"QDate",{"type":24,"value":694},"类型、",{"type":19,"tag":27,"props":696,"children":698},{"className":697},[],[699],{"type":24,"value":700},"QTime",{"type":24,"value":702},"类型和",{"type":19,"tag":27,"props":704,"children":706},{"className":705},[],[707],{"type":24,"value":708},"QDateTime",{"type":24,"value":710},"类型，无法直接使用，因此如果想要获取日期时间控件中的具体日期和（或）时间值，可以使用",{"type":19,"tag":27,"props":712,"children":714},{"className":713},[],[715],{"type":24,"value":716},"text()",{"type":24,"value":718},"方法进行获取，例如：",{"type":19,"tag":720,"props":721,"children":724},"pre",{"code":7,"language":722,"meta":7,"className":723,"style":7},"python","language-python shiki shiki-themes github-dark",[725],{"type":19,"tag":27,"props":726,"children":727},{"__ignoreMap":7},[728],{"type":19,"tag":729,"props":730,"children":733},"span",{"class":731,"line":732},"line",1,[734],{"type":19,"tag":729,"props":735,"children":736},{},[737],{"type":24,"value":7},{"type":19,"tag":20,"props":739,"children":740},{},[741],{"type":24,"value":742},"self.dateTimeEdit.text()",{"type":19,"tag":509,"props":744,"children":745},{},[746],{"type":19,"tag":720,"props":747,"children":748},{"code":7},[749],{"type":19,"tag":27,"props":750,"children":751},{"__ignoreMap":7},[752],{"type":24,"value":7},{"type":19,"tag":20,"props":754,"children":755},{},[756,758,764],{"type":24,"value":757},"2）使用日期时间控件时，如果要改变日期时间，默认只能通过上下箭头来改变，如果想弹出日历控件，那么设置",{"type":19,"tag":27,"props":759,"children":761},{"className":760},[],[762],{"type":24,"value":763},"setCalendarPoput(True)",{"type":24,"value":765},"即可。",{"type":19,"tag":59,"props":767,"children":769},{"id":768},"_2calendarwidget日历控件",[770,772,777],{"type":24,"value":771},"2  ",{"type":19,"tag":27,"props":773,"children":775},{"className":774},[],[776],{"type":24,"value":55},{"type":24,"value":778},"：日历控件",{"type":19,"tag":66,"props":780,"children":781},{},[],{"type":19,"tag":20,"props":783,"children":784},{},[785,790],{"type":19,"tag":27,"props":786,"children":788},{"className":787},[],[789],{"type":24,"value":55},{"type":24,"value":791},"控件，又称为日历控件，主要用来显示和选择日期。",{"type":19,"tag":20,"props":793,"children":794},{},[795,800,802,808],{"type":19,"tag":27,"props":796,"children":798},{"className":797},[],[799],{"type":24,"value":55},{"type":24,"value":801},"控件对应PyQt5中的",{"type":19,"tag":27,"props":803,"children":805},{"className":804},[],[806],{"type":24,"value":807},"QCalendarWidget",{"type":24,"value":809},"类，该类的常用方法及说明如表所示。",{"type":19,"tag":182,"props":811,"children":812},{},[813,833],{"type":19,"tag":186,"props":814,"children":815},{},[816],{"type":19,"tag":190,"props":817,"children":818},{},[819,826],{"type":19,"tag":194,"props":820,"children":821},{},[822],{"type":19,"tag":111,"props":823,"children":824},{},[825],{"type":24,"value":201},{"type":19,"tag":194,"props":827,"children":828},{},[829],{"type":19,"tag":111,"props":830,"children":831},{},[832],{"type":24,"value":209},{"type":19,"tag":211,"props":834,"children":835},{},[836,849,860,872,941,954,983,1028,1057,1070,1083,1096],{"type":19,"tag":190,"props":837,"children":838},{},[839,844],{"type":19,"tag":218,"props":840,"children":841},{},[842],{"type":24,"value":843},"setSelectedDate()",{"type":19,"tag":218,"props":845,"children":846},{},[847],{"type":24,"value":848},"设置选中的日期，默认为当前日期",{"type":19,"tag":190,"props":850,"children":851},{},[852,856],{"type":19,"tag":218,"props":853,"children":854},{},[855],{"type":24,"value":346},{"type":19,"tag":218,"props":857,"children":858},{},[859],{"type":24,"value":351},{"type":19,"tag":190,"props":861,"children":862},{},[863,868],{"type":19,"tag":218,"props":864,"children":865},{},[866],{"type":24,"value":867},"setMaximumDate",{"type":19,"tag":218,"props":869,"children":870},{},[871],{"type":24,"value":338},{"type":19,"tag":190,"props":873,"children":874},{},[875,880],{"type":19,"tag":218,"props":876,"children":877},{},[878],{"type":24,"value":879},"setFirstDayOfWeek",{"type":19,"tag":218,"props":881,"children":882},{},[883,885,888,891,893,896,899,901,904,907,909,912,915,917,920,923,925,928,931,933,936,939],{"type":24,"value":884},"设置一周的第一天，取值如下：",{"type":19,"tag":268,"props":886,"children":887},{},[],{"type":19,"tag":268,"props":889,"children":890},{},[],{"type":24,"value":892},"◆ Qt.Monday：星期一",{"type":19,"tag":268,"props":894,"children":895},{},[],{"type":19,"tag":268,"props":897,"children":898},{},[],{"type":24,"value":900},"◆ Qt.Tuesday：星期二",{"type":19,"tag":268,"props":902,"children":903},{},[],{"type":19,"tag":268,"props":905,"children":906},{},[],{"type":24,"value":908},"◆ Qt.Wednesday：星期三",{"type":19,"tag":268,"props":910,"children":911},{},[],{"type":19,"tag":268,"props":913,"children":914},{},[],{"type":24,"value":916},"◆ Qt.Thursday：星期四",{"type":19,"tag":268,"props":918,"children":919},{},[],{"type":19,"tag":268,"props":921,"children":922},{},[],{"type":24,"value":924},"◆ Qt.Friday：星期五",{"type":19,"tag":268,"props":926,"children":927},{},[],{"type":19,"tag":268,"props":929,"children":930},{},[],{"type":24,"value":932},"◆ Qt.Saturday：星期六",{"type":19,"tag":268,"props":934,"children":935},{},[],{"type":19,"tag":268,"props":937,"children":938},{},[],{"type":24,"value":940},"◆ Qt.Sunday：星期日",{"type":19,"tag":190,"props":942,"children":943},{},[944,949],{"type":19,"tag":218,"props":945,"children":946},{},[947],{"type":24,"value":948},"setGridVisible",{"type":19,"tag":218,"props":950,"children":951},{},[952],{"type":24,"value":953},"设置是否显示网格线",{"type":19,"tag":190,"props":955,"children":956},{},[957,962],{"type":19,"tag":218,"props":958,"children":959},{},[960],{"type":24,"value":961},"setSelectionMode",{"type":19,"tag":218,"props":963,"children":964},{},[965,967,970,973,975,978,981],{"type":24,"value":966},"设置选择模式，取值如下：",{"type":19,"tag":268,"props":968,"children":969},{},[],{"type":19,"tag":268,"props":971,"children":972},{},[],{"type":24,"value":974},"◆ QCalendarWidget.NoSelection：不能选中日期",{"type":19,"tag":268,"props":976,"children":977},{},[],{"type":19,"tag":268,"props":979,"children":980},{},[],{"type":24,"value":982},"◆ QCalendarWidget.SingleSelection：可以选中一个日期",{"type":19,"tag":190,"props":984,"children":985},{},[986,991],{"type":19,"tag":218,"props":987,"children":988},{},[989],{"type":24,"value":990},"setHorizontalHeaderFormat",{"type":19,"tag":218,"props":992,"children":993},{},[994,996,999,1002,1004,1007,1010,1012,1015,1018,1020,1023,1026],{"type":24,"value":995},"设置水平头部格式，分别如下：",{"type":19,"tag":268,"props":997,"children":998},{},[],{"type":19,"tag":268,"props":1000,"children":1001},{},[],{"type":24,"value":1003},"◆ QCalendarWidget.NoHorizontalHeader：不显示水平头部",{"type":19,"tag":268,"props":1005,"children":1006},{},[],{"type":19,"tag":268,"props":1008,"children":1009},{},[],{"type":24,"value":1011},"◆ QCalendarWidget.SingleLetterDayNames：“周”",{"type":19,"tag":268,"props":1013,"children":1014},{},[],{"type":19,"tag":268,"props":1016,"children":1017},{},[],{"type":24,"value":1019},"◆ QCalendarWidget.ShortDayNames：简短天的名称，如“周一”",{"type":19,"tag":268,"props":1021,"children":1022},{},[],{"type":19,"tag":268,"props":1024,"children":1025},{},[],{"type":24,"value":1027},"◆ QCalendarWidget.LongDayNames：完整天的名称，如“星期一”",{"type":19,"tag":190,"props":1029,"children":1030},{},[1031,1036],{"type":19,"tag":218,"props":1032,"children":1033},{},[1034],{"type":24,"value":1035},"setVerticalHeaderFormat",{"type":19,"tag":218,"props":1037,"children":1038},{},[1039,1041,1044,1047,1049,1052,1055],{"type":24,"value":1040},"设置对齐方式，有水平和垂直两种，分别如下：",{"type":19,"tag":268,"props":1042,"children":1043},{},[],{"type":19,"tag":268,"props":1045,"children":1046},{},[],{"type":24,"value":1048},"◆ QCalendarWidget.NoVerticalHeader：不显示垂直头部",{"type":19,"tag":268,"props":1050,"children":1051},{},[],{"type":19,"tag":268,"props":1053,"children":1054},{},[],{"type":24,"value":1056},"◆ QCalendarWidget.ISOWeekNumbers：以星期数字显示垂直头部",{"type":19,"tag":190,"props":1058,"children":1059},{},[1060,1065],{"type":19,"tag":218,"props":1061,"children":1062},{},[1063],{"type":24,"value":1064},"setNavigationBarVisible",{"type":19,"tag":218,"props":1066,"children":1067},{},[1068],{"type":24,"value":1069},"设置是否显示导航栏",{"type":19,"tag":190,"props":1071,"children":1072},{},[1073,1078],{"type":19,"tag":218,"props":1074,"children":1075},{},[1076],{"type":24,"value":1077},"setDateEditEnabled",{"type":19,"tag":218,"props":1079,"children":1080},{},[1081],{"type":24,"value":1082},"设置是否可以编辑日期",{"type":19,"tag":190,"props":1084,"children":1085},{},[1086,1091],{"type":19,"tag":218,"props":1087,"children":1088},{},[1089],{"type":24,"value":1090},"setDateEditAcceptDelay()",{"type":19,"tag":218,"props":1092,"children":1093},{},[1094],{"type":24,"value":1095},"设置编辑日期的最长间隔，默认为1500",{"type":19,"tag":190,"props":1097,"children":1098},{},[1099,1104],{"type":19,"tag":218,"props":1100,"children":1101},{},[1102],{"type":24,"value":1103},"selectedDate()",{"type":19,"tag":218,"props":1105,"children":1106},{},[1107],{"type":24,"value":1108},"获取选择的日期，返回值而QDate类型",{"type":19,"tag":20,"props":1110,"children":1111},{},[1112,1117,1119,1125],{"type":19,"tag":27,"props":1113,"children":1115},{"className":1114},[],[1116],{"type":24,"value":55},{"type":24,"value":1118},"控件最常用的信号是",{"type":19,"tag":27,"props":1120,"children":1122},{"className":1121},[],[1123],{"type":24,"value":1124},"selectionChanged",{"type":24,"value":1126},"，该信号在选择的日期发生改变时发射。",{"type":19,"tag":20,"props":1128,"children":1129},{},[1130],{"type":19,"tag":111,"props":1131,"children":1132},{},[1133],{"type":24,"value":1134},"实例 获取选中的日期",{"type":19,"tag":20,"props":1136,"children":1137},{},[1138,1140,1145,1147,1153,1155,1161,1163,1168,1170,1176,1178,1183,1185,1191],{"type":24,"value":1139},"在Qt Designer设计器中创建一个窗口，在窗口中添加一个",{"type":19,"tag":27,"props":1141,"children":1143},{"className":1142},[],[1144],{"type":24,"value":55},{"type":24,"value":1146},"控件，设计完成后保存为",{"type":19,"tag":27,"props":1148,"children":1150},{"className":1149},[],[1151],{"type":24,"value":1152},".ui",{"type":24,"value":1154},"文件，并使用Pyuic工具将其转换为",{"type":19,"tag":27,"props":1156,"children":1158},{"className":1157},[],[1159],{"type":24,"value":1160},".py",{"type":24,"value":1162},"代码文件。在",{"type":19,"tag":27,"props":1164,"children":1166},{"className":1165},[],[1167],{"type":24,"value":1160},{"type":24,"value":1169},"代码文件中自定义一个",{"type":19,"tag":27,"props":1171,"children":1173},{"className":1172},[],[1174],{"type":24,"value":1175},"getdate()方法",{"type":24,"value":1177},"，用来获取",{"type":19,"tag":27,"props":1179,"children":1181},{"className":1180},[],[1182],{"type":24,"value":55},{"type":24,"value":1184},"控件中选中的日期，并转换为",{"type":19,"tag":27,"props":1186,"children":1188},{"className":1187},[],[1189],{"type":24,"value":1190},"年-月-日",{"type":24,"value":1192},"形式，显示在弹出的提示框中，代码如下：",{"type":19,"tag":720,"props":1194,"children":1196},{"code":1195,"language":722,"meta":7,"className":723,"style":7},"def getdate(self):  \n    from PyQt5.QtWidgets import QMessageBox  \n    # 获取当前选中日期的QDate对象  \n    date = QtCore.QDate(self.calendarWidget.selectedDate())  \n    year = date.year()    # 获取年份  \n    month = date.month()  # 获取月份  \n    day = date.day()      # 获取日  \n    QMessageBox.information(MainWindow, \"提示\", str(year) + \"-\" + str(month) + \"-\" + str(day), QMessageBox.Ok)\n",[1197],{"type":19,"tag":27,"props":1198,"children":1199},{"__ignoreMap":7},[1200,1208,1217,1226,1235,1244,1253,1262],{"type":19,"tag":729,"props":1201,"children":1202},{"class":731,"line":732},[1203],{"type":19,"tag":729,"props":1204,"children":1205},{},[1206],{"type":24,"value":1207},"def getdate(self):  \n",{"type":19,"tag":729,"props":1209,"children":1211},{"class":731,"line":1210},2,[1212],{"type":19,"tag":729,"props":1213,"children":1214},{},[1215],{"type":24,"value":1216},"    from PyQt5.QtWidgets import QMessageBox  \n",{"type":19,"tag":729,"props":1218,"children":1220},{"class":731,"line":1219},3,[1221],{"type":19,"tag":729,"props":1222,"children":1223},{},[1224],{"type":24,"value":1225},"    # 获取当前选中日期的QDate对象  \n",{"type":19,"tag":729,"props":1227,"children":1229},{"class":731,"line":1228},4,[1230],{"type":19,"tag":729,"props":1231,"children":1232},{},[1233],{"type":24,"value":1234},"    date = QtCore.QDate(self.calendarWidget.selectedDate())  \n",{"type":19,"tag":729,"props":1236,"children":1238},{"class":731,"line":1237},5,[1239],{"type":19,"tag":729,"props":1240,"children":1241},{},[1242],{"type":24,"value":1243},"    year = date.year()    # 获取年份  \n",{"type":19,"tag":729,"props":1245,"children":1247},{"class":731,"line":1246},6,[1248],{"type":19,"tag":729,"props":1249,"children":1250},{},[1251],{"type":24,"value":1252},"    month = date.month()  # 获取月份  \n",{"type":19,"tag":729,"props":1254,"children":1256},{"class":731,"line":1255},7,[1257],{"type":19,"tag":729,"props":1258,"children":1259},{},[1260],{"type":24,"value":1261},"    day = date.day()      # 获取日  \n",{"type":19,"tag":729,"props":1263,"children":1265},{"class":731,"line":1264},8,[1266],{"type":19,"tag":729,"props":1267,"children":1268},{},[1269],{"type":24,"value":1270},"    QMessageBox.information(MainWindow, \"提示\", str(year) + \"-\" + str(month) + \"-\" + str(day), QMessageBox.Ok)\n",{"type":19,"tag":20,"props":1272,"children":1273},{},[1274,1276,1281,1283,1289,1291,1297],{"type":24,"value":1275},"对",{"type":19,"tag":27,"props":1277,"children":1279},{"className":1278},[],[1280],{"type":24,"value":55},{"type":24,"value":1282},"控件进行设置，并为其",{"type":19,"tag":27,"props":1284,"children":1286},{"className":1285},[],[1287],{"type":24,"value":1288},"selectionChanged信号",{"type":24,"value":1290},"绑定自定义的",{"type":19,"tag":27,"props":1292,"children":1294},{"className":1293},[],[1295],{"type":24,"value":1296},"getdate()槽函数",{"type":24,"value":1298},"，代码如下：",{"type":19,"tag":720,"props":1300,"children":1302},{"code":1301,"language":722,"meta":7,"className":723,"style":7},"self.calendarWidget = QtWidgets.QCalendarWidget(self.centralwidget)  \nself.calendarWidget.setGeometry(QtCore.QRect(20, 10, 248, 197))  \nself.calendarWidget.setSelectedDate(QtCore.QDate(2020, 3, 23))  # 设置默认选中的日期  \nself.calendarWidget.setMinimumDate(QtCore.QDate(1752, 9, 14))  # 设置最小的日期  \nself.calendarWidget.setMaximumDate(QtCore.QDate(9999, 12, 31))  # 设置最大的日期  \nself.calendarWidget.setFirstDayOfWeek(QtCore.Qt.Monday)  # 设置每周的第一天为星期一  \nself.calendarWidget.setGridVisible(True)  # 设置网格线可见  \n# 设置可以选中单个日期  \nself.calendarWidget.setSelectionMode(QtWidgets.QCalendarWidget.SingleSelection)  \n# 设置水平表头为简短形式，即“周一”形式  \nself.calendarWidget.setHorizontalHeaderFormat(QtWidgets.QCalendarWidget.ShortDayNames)  \n# 设置垂直表头为周数  \nself.calendarWidget.setVerticalHeaderFormat(QtWidgets.QCalendarWidget.ISOWeekNumbers)  \nself.calendarWidget.setNavigationBarVisible(True)  # 设置显示导航栏  \nself.calendarWidget.setDateEditEnabled(True)  # 设置日期可以编辑  \nself.calendarWidget.setObjectName(\"calendarWidget\")  \n# 选中日期变化时显示选择的日期  \nself.calendarWidget.selectionChanged.connect(self.getdate)\n",[1303],{"type":19,"tag":27,"props":1304,"children":1305},{"__ignoreMap":7},[1306,1314,1322,1330,1338,1346,1354,1362,1370,1379,1388,1397,1406,1415,1424,1433,1442,1451],{"type":19,"tag":729,"props":1307,"children":1308},{"class":731,"line":732},[1309],{"type":19,"tag":729,"props":1310,"children":1311},{},[1312],{"type":24,"value":1313},"self.calendarWidget = QtWidgets.QCalendarWidget(self.centralwidget)  \n",{"type":19,"tag":729,"props":1315,"children":1316},{"class":731,"line":1210},[1317],{"type":19,"tag":729,"props":1318,"children":1319},{},[1320],{"type":24,"value":1321},"self.calendarWidget.setGeometry(QtCore.QRect(20, 10, 248, 197))  \n",{"type":19,"tag":729,"props":1323,"children":1324},{"class":731,"line":1219},[1325],{"type":19,"tag":729,"props":1326,"children":1327},{},[1328],{"type":24,"value":1329},"self.calendarWidget.setSelectedDate(QtCore.QDate(2020, 3, 23))  # 设置默认选中的日期  \n",{"type":19,"tag":729,"props":1331,"children":1332},{"class":731,"line":1228},[1333],{"type":19,"tag":729,"props":1334,"children":1335},{},[1336],{"type":24,"value":1337},"self.calendarWidget.setMinimumDate(QtCore.QDate(1752, 9, 14))  # 设置最小的日期  \n",{"type":19,"tag":729,"props":1339,"children":1340},{"class":731,"line":1237},[1341],{"type":19,"tag":729,"props":1342,"children":1343},{},[1344],{"type":24,"value":1345},"self.calendarWidget.setMaximumDate(QtCore.QDate(9999, 12, 31))  # 设置最大的日期  \n",{"type":19,"tag":729,"props":1347,"children":1348},{"class":731,"line":1246},[1349],{"type":19,"tag":729,"props":1350,"children":1351},{},[1352],{"type":24,"value":1353},"self.calendarWidget.setFirstDayOfWeek(QtCore.Qt.Monday)  # 设置每周的第一天为星期一  \n",{"type":19,"tag":729,"props":1355,"children":1356},{"class":731,"line":1255},[1357],{"type":19,"tag":729,"props":1358,"children":1359},{},[1360],{"type":24,"value":1361},"self.calendarWidget.setGridVisible(True)  # 设置网格线可见  \n",{"type":19,"tag":729,"props":1363,"children":1364},{"class":731,"line":1264},[1365],{"type":19,"tag":729,"props":1366,"children":1367},{},[1368],{"type":24,"value":1369},"# 设置可以选中单个日期  \n",{"type":19,"tag":729,"props":1371,"children":1373},{"class":731,"line":1372},9,[1374],{"type":19,"tag":729,"props":1375,"children":1376},{},[1377],{"type":24,"value":1378},"self.calendarWidget.setSelectionMode(QtWidgets.QCalendarWidget.SingleSelection)  \n",{"type":19,"tag":729,"props":1380,"children":1382},{"class":731,"line":1381},10,[1383],{"type":19,"tag":729,"props":1384,"children":1385},{},[1386],{"type":24,"value":1387},"# 设置水平表头为简短形式，即“周一”形式  \n",{"type":19,"tag":729,"props":1389,"children":1391},{"class":731,"line":1390},11,[1392],{"type":19,"tag":729,"props":1393,"children":1394},{},[1395],{"type":24,"value":1396},"self.calendarWidget.setHorizontalHeaderFormat(QtWidgets.QCalendarWidget.ShortDayNames)  \n",{"type":19,"tag":729,"props":1398,"children":1400},{"class":731,"line":1399},12,[1401],{"type":19,"tag":729,"props":1402,"children":1403},{},[1404],{"type":24,"value":1405},"# 设置垂直表头为周数  \n",{"type":19,"tag":729,"props":1407,"children":1409},{"class":731,"line":1408},13,[1410],{"type":19,"tag":729,"props":1411,"children":1412},{},[1413],{"type":24,"value":1414},"self.calendarWidget.setVerticalHeaderFormat(QtWidgets.QCalendarWidget.ISOWeekNumbers)  \n",{"type":19,"tag":729,"props":1416,"children":1418},{"class":731,"line":1417},14,[1419],{"type":19,"tag":729,"props":1420,"children":1421},{},[1422],{"type":24,"value":1423},"self.calendarWidget.setNavigationBarVisible(True)  # 设置显示导航栏  \n",{"type":19,"tag":729,"props":1425,"children":1427},{"class":731,"line":1426},15,[1428],{"type":19,"tag":729,"props":1429,"children":1430},{},[1431],{"type":24,"value":1432},"self.calendarWidget.setDateEditEnabled(True)  # 设置日期可以编辑  \n",{"type":19,"tag":729,"props":1434,"children":1436},{"class":731,"line":1435},16,[1437],{"type":19,"tag":729,"props":1438,"children":1439},{},[1440],{"type":24,"value":1441},"self.calendarWidget.setObjectName(\"calendarWidget\")  \n",{"type":19,"tag":729,"props":1443,"children":1445},{"class":731,"line":1444},17,[1446],{"type":19,"tag":729,"props":1447,"children":1448},{},[1449],{"type":24,"value":1450},"# 选中日期变化时显示选择的日期  \n",{"type":19,"tag":729,"props":1452,"children":1454},{"class":731,"line":1453},18,[1455],{"type":19,"tag":729,"props":1456,"children":1457},{},[1458],{"type":24,"value":1459},"self.calendarWidget.selectionChanged.connect(self.getdate)\n",{"type":19,"tag":20,"props":1461,"children":1462},{},[1463,1465,1470],{"type":24,"value":1464},"为",{"type":19,"tag":27,"props":1466,"children":1468},{"className":1467},[],[1469],{"type":24,"value":1160},{"type":24,"value":1471},"文件添加程序入口，然后运行程序，日期控件在窗口中的显示效果如图所示;",{"type":19,"tag":20,"props":1473,"children":1474},{},[1475],{"type":19,"tag":650,"props":1476,"children":1479},{"alt":1477,"src":1478},"Pasted image 20250901202415","\u002Fimages\u002Fblog\u002Fpyqt5\u002FPasted%20image%2020250901202415.png",[],{"type":19,"tag":20,"props":1481,"children":1482},{},[1483],{"type":24,"value":1484},"单击某个日期时，可以弹出对话框进行显示，如图所示。",{"type":19,"tag":20,"props":1486,"children":1487},{},[1488],{"type":19,"tag":650,"props":1489,"children":1492},{"alt":1490,"src":1491},"Pasted image 20250901202613","\u002Fimages\u002Fblog\u002Fpyqt5\u002FPasted%20image%2020250901202613.png",[],{"type":19,"tag":509,"props":1494,"children":1495},{},[1496,1600],{"type":19,"tag":20,"props":1497,"children":1498},{},[1499,1503,1505,1510,1512,1518,1520,1525,1527,1532,1534,1539,1541,1545,1547,1552,1554,1560,1562,1567,1568,1573,1574,1580,1581,1586,1587,1592,1593,1599],{"type":19,"tag":111,"props":1500,"children":1501},{},[1502],{"type":24,"value":665},{"type":24,"value":1504}," 多学两招\n在PyQt5中，如果要",{"type":19,"tag":111,"props":1506,"children":1507},{},[1508],{"type":24,"value":1509},"获取当前系统的日期时间",{"type":24,"value":1511},"，可以借助",{"type":19,"tag":27,"props":1513,"children":1515},{"className":1514},[],[1516],{"type":24,"value":1517},"QtCore",{"type":24,"value":1519},"模块下的",{"type":19,"tag":27,"props":1521,"children":1523},{"className":1522},[],[1524],{"type":24,"value":708},{"type":24,"value":1526},"类、",{"type":19,"tag":27,"props":1528,"children":1530},{"className":1529},[],[1531],{"type":24,"value":692},{"type":24,"value":1533},"类或者",{"type":19,"tag":27,"props":1535,"children":1537},{"className":1536},[],[1538],{"type":24,"value":700},{"type":24,"value":1540},"类实现。其中，",{"type":19,"tag":111,"props":1542,"children":1543},{},[1544],{"type":24,"value":1509},{"type":24,"value":1546},"可以使用",{"type":19,"tag":27,"props":1548,"children":1550},{"className":1549},[],[1551],{"type":24,"value":708},{"type":24,"value":1553},"类的",{"type":19,"tag":27,"props":1555,"children":1557},{"className":1556},[],[1558],{"type":24,"value":1559},"currentDateTime()方法",{"type":24,"value":1561},"，",{"type":19,"tag":111,"props":1563,"children":1564},{},[1565],{"type":24,"value":1566},"获取当前系统的日期",{"type":24,"value":1546},{"type":19,"tag":27,"props":1569,"children":1571},{"className":1570},[],[1572],{"type":24,"value":692},{"type":24,"value":1553},{"type":19,"tag":27,"props":1575,"children":1577},{"className":1576},[],[1578],{"type":24,"value":1579},"currentDate()方法",{"type":24,"value":1561},{"type":19,"tag":111,"props":1582,"children":1583},{},[1584],{"type":24,"value":1585},"获取当前系统的时间",{"type":24,"value":1546},{"type":19,"tag":27,"props":1588,"children":1590},{"className":1589},[],[1591],{"type":24,"value":700},{"type":24,"value":1553},{"type":19,"tag":27,"props":1594,"children":1596},{"className":1595},[],[1597],{"type":24,"value":1598},"currentTime()方法",{"type":24,"value":1298},{"type":19,"tag":720,"props":1601,"children":1603},{"code":1602},"# 获取当前系统的日期时间  \ndatetime = QtCore.QDateTime.currentDateTime()  \n# 获取当前系统的日期  \ndate = QtCore.QDate.currentDate()  \n# 获取当前系统的时间  \ntime = QtCore.QTime.currentTime()\n",[1604],{"type":19,"tag":27,"props":1605,"children":1606},{"__ignoreMap":7},[1607],{"type":24,"value":1602},{"type":19,"tag":1609,"props":1610,"children":1611},"style",{},[1612],{"type":24,"value":1613},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":1210,"depth":1210,"links":1615},[1616,1617],{"id":61,"depth":1210,"text":64},{"id":768,"depth":1210,"text":1618},"2  CalendarWidget：日历控件","markdown","content:blog:2025-08-27-pyqt5-日期时间类控件.md","content","blog\u002F2025-08-27-pyqt5-日期时间类控件.md","blog\u002F2025-08-27-pyqt5-日期时间类控件","md",1780801017968]