最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用PyQT5日期控件制作一個(gè)小日歷

 更新時(shí)間:2022年01月07日 08:32:27   作者:Python集中營  
這篇文章主要介紹了利用PyQT5的日期控件制作一個(gè)小日歷,因?yàn)閜yqt5已經(jīng)自帶了相關(guān)的日期控件,只需要明白如何調(diào)用再加上比較個(gè)性化的功能,這個(gè)日歷的小控件就制作完成了。需要的可以參考一下

介紹

日歷的制作比較簡單,因?yàn)閜yqt5已經(jīng)自帶了相關(guān)的日期控件,只需要明白如何調(diào)用再加上比較個(gè)性化的功能,這個(gè)日歷的小控件就制作完成了。

file

日歷實(shí)現(xiàn)代碼量不多,具體效果如下圖

file

主要代碼

在制作過程中使用到的python模塊包說明:

from PyQt5.QtWidgets import *  # 窗口組件

from PyQt5.QtCore import *  # 核心組件、日歷組件就是在這個(gè)庫

import sys  # 操作系統(tǒng)處理庫

在小日歷的制作過程中只使用了一個(gè)槽函數(shù),就是將當(dāng)前選中的日歷時(shí)間進(jìn)行字符串的格式化以后再顯示到下面的標(biāo)簽控件上。只需要一句代碼就可以實(shí)現(xiàn)了。

def calender_show(self):
        '''
        當(dāng)前日歷展示的槽函數(shù)
        :return:
        '''
        selected = self.calender_.selectedDate()
        self.current_date.setText('您當(dāng)前選中的日期是:{}'.format(selected.toString("yyyy-MM-dd dddd")))

在每個(gè) GUI 的應(yīng)用中代碼量比較多的還是 UI 界面的使用上面。下面就是相關(guān)控件的初始化和顯示過程。

    def init_ui(self):
        '''
        日歷UI界面函數(shù)
        :return:
        '''
        self.setWindowTitle("我的小日歷")  # 設(shè)置標(biāo)題

        vbox = QVBoxLayout()  # 創(chuàng)建垂直布局

        '''創(chuàng)建日歷控件對象'''
        self.calender_ = QCalendarWidget()
        self.calender_.setGridVisible(True)  # 設(shè)置日期控件使用網(wǎng)格布局
        self.calender_.setMinimumDate(QDate(1970, 1, 1))  # 設(shè)置最小日期
        self.calender_.setMaximumDate(QDate(3200, 1, 1))  # 設(shè)置最大日期
        self.calender_.setFirstDayOfWeek(Qt.Monday)  # 設(shè)置星期一為每周的第一天
        self.calender_.clicked[QDate].connect(self.calender_show)

        vbox.addWidget(self.calender_)  # 將日歷控件加入垂直布局

        self.current_date = QLabel()
        self.calender_show()

        vbox.addWidget(self.current_date)  # 將顯示標(biāo)簽加入布局

        self.setLayout(vbox)  # 將垂直布局作為主布局加入

補(bǔ)充

Python也可以直接生成簡單的日歷效果

以下是主要代碼

# 輸出日歷界面

print("*" * 50)
print("歡迎使用【天天日歷】v2.0")

# 接收用戶輸入的年份
year_int = int(input("請輸入年份:\n"))
# 定義全局變量用于記錄天數(shù)總和
sum = 0
if year_int >= 1917:
  month_int = int(input("請輸入月份\n"))
  for year_every in range(1917, year_int): # 遍歷從1917年到用戶輸入年份 用于計(jì)算到用戶所輸入年份共多少天
    if (year_every % 4 == 0 and year_every % 100 != 0) or \
                year_every % 400 == 0: # 如果是瑞年則366天否則平年365天
      sum += 366
    else:
      sum += 365
  for month_every in range(1, month_int): # 遍歷月份用于計(jì)算由1月份到用戶輸入月份的總天數(shù)
    if month_every == 4 or month_every == 6 or \
            month_every == 9 or month_every == 11:
      sum += 30
    elif month_every == 2:
      if (year_int % 1 == 0 and year_int % 100 != 0) or \
                  year_int % 400 == 0:
        sum += 29
      else:
        sum += 28
    else:
      sum += 31
  # 定義變量用于定義每個(gè)月的天數(shù)
  day = 0
  # 定義變量 用于計(jì)算當(dāng)月第一天為周幾
  weak = sum % 7

  print("日\t一\t二\t三\t四\t五\t六")
  # 判斷用戶輸入月份為多少天
  if month_int == 4 or month_int == 6 or month_int == 9 or month_int == 11:
    day = 30
  elif month_int == 2:
    if (year_int % 4 == 0 and year_int % 100 != 0) or \
                year_int % 400 == 0:
      day = 29
    else:
      day = 28
  else:
    day = 31
  # 輸出指定空格數(shù)讓第一天與周幾對齊
  print("\t"*weak,end="")
  i = 1
  while i <= day: # 遍歷用戶查詢月份
    weakend = ((sum+i)-1)% 7
    # 如果余數(shù)為6 換行否則輸出空格
    if weakend == 6:
      print("%d" %i)
    else:
      print(i,end="\t")
    i += 1
else:
  print("系統(tǒng)正在維護(hù)暫時(shí)無法獲取1917年之前的信息")

到此這篇關(guān)于利用PyQT5日期控件制作一個(gè)小日歷的文章就介紹到這了,更多相關(guān)PyQT5日歷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用pandas讀取csv文件的指定列方法

    使用pandas讀取csv文件的指定列方法

    下面小編就為大家分享一篇使用pandas讀取csv文件的指定列方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Django 框架模型操作入門教程

    Django 框架模型操作入門教程

    這篇文章主要介紹了Django 框架模型操作,結(jié)合實(shí)例形式分析了Django框架相關(guān)的數(shù)據(jù)庫配置、數(shù)據(jù)增刪改查等操作技巧,需要的朋友可以參考下
    2019-11-11
  • python技巧分享Excel創(chuàng)建和修改

    python技巧分享Excel創(chuàng)建和修改

    這篇文章主要介紹了python技巧分享Excel創(chuàng)建和修改,openpyxl是一個(gè)讀寫Excel文檔的Python庫,能夠同時(shí)讀取和修改Excel文檔。下面來看下文詳細(xì)介紹,需要的小伙伴可以參考一下
    2022-02-02
  • window下eclipse安裝python插件教程

    window下eclipse安裝python插件教程

    這篇文章主要為大家詳細(xì)介紹了window下eclipse安裝python插件教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 基于Python實(shí)現(xiàn)天天酷跑功能

    基于Python實(shí)現(xiàn)天天酷跑功能

    這篇文章主要介紹了基于Python實(shí)現(xiàn)天天酷跑功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • python中pathlib模塊的基本用法與總結(jié)

    python中pathlib模塊的基本用法與總結(jié)

    這篇文章主要給大家介紹了關(guān)于python中pathlib模塊的基本用法與總結(jié)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 布隆過濾器的概述及Python實(shí)現(xiàn)方法

    布隆過濾器的概述及Python實(shí)現(xiàn)方法

    布隆過濾器是一種概率空間高效的數(shù)據(jù)結(jié)構(gòu)。它與hashmap非常相似,用于檢索一個(gè)元素是否在一個(gè)集合中。這篇文章主要介紹了布隆過濾器的概述及Python實(shí)現(xiàn),需要的朋友可以參考下
    2019-12-12
  • Python+Selenium實(shí)現(xiàn)無頭瀏覽器網(wǎng)頁截圖

    Python+Selenium實(shí)現(xiàn)無頭瀏覽器網(wǎng)頁截圖

    這篇文章主要為大家詳細(xì)介紹了Python+Selenium實(shí)現(xiàn)無頭瀏覽器網(wǎng)頁截圖的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • win10安裝python的全過程

    win10安裝python的全過程

    這篇文章主要介紹了win10安裝python的全過程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 三步實(shí)現(xiàn)Django Paginator分頁的方法

    三步實(shí)現(xiàn)Django Paginator分頁的方法

    這篇文章主要介紹了三步實(shí)現(xiàn)Django Paginator分頁的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評論

息烽县| 肇庆市| 周宁县| 津市市| 蒙山县| 米林县| 富民县| 罗平县| 冷水江市| 武宣县| 防城港市| 溧阳市| 彰武县| 阿鲁科尔沁旗| 汉阴县| 卓尼县| 银川市| 香港| 衡阳市| 洪江市| 杭锦旗| 博湖县| 莱阳市| 赣榆县| 永年县| 北碚区| 邯郸市| 南安市| 乐都县| 万州区| 漠河县| 陆河县| 彰化市| 武穴市| 沾益县| 荃湾区| 鄱阳县| 乐昌市| 八宿县| 宜兰县| 中超|