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

Python調用ChatGPT制作基于Tkinter的桌面時鐘

 更新時間:2023年03月23日 08:38:41   作者:小鋒學長生活大爆炸  
這篇文章主要為大家詳細介紹了Python如何調用ChatGPT制作基于Tkinter的桌面時鐘,文中的示例代碼講解詳細,感興趣的可以了解一下

描述

給ChatGPT的描述內容:

python在桌面上顯示動態(tài)的文字,不要顯示窗口邊框。窗口背景和標簽背景都是透明的,但標簽內的文字是有顏色。使用tkinter庫實現,并以class的形式書寫,方便用戶對內容進行擴展開發(fā)。

窗口默認出現在屏幕的中間位置。窗口中的標簽需要包含兩項內容。其中一項用于實時顯示當前的日期和時間,精確到毫秒。另一項從txt文件中讀取顯示,若沒有txt文件則顯示“None”。

在未鎖定狀態(tài)下,鼠標可以拖動窗口。在鎖定狀態(tài)下,窗口無法通過鼠標的拖動而移動。在窗口中添加一個“鎖定”按鈕,當鼠標移動到窗口上方時,顯示“鎖定”按鈕,鼠標移走后,隱藏“鎖定”按鈕。通過“鎖定”按鈕,窗口進入鎖定狀態(tài)。在鎖定狀態(tài)下,當鼠標移動到窗口上方時,顯示一個“解除鎖定”的按鈕,鼠標移走后,隱藏該“解除鎖定”按鈕。通過點擊“解除鎖定”按鈕,進入未鎖定狀態(tài)。鎖定和未鎖定狀態(tài)是互相切換的。

給窗口添加一個鼠標右鍵的功能,在右鍵菜單中,可以點擊“退出”,從而退出應用。

窗口中的內容居中顯示。

代碼

給出的代碼,并經過微調:

import tkinter as tk
import datetime
import math
import locale
 
# Set the locale to use UTF-8 encoding
locale.setlocale(locale.LC_ALL, 'en_US.utf8')
 
 
class TransparentWindow(tk.Tk):
    def __init__(self, text_file=None):
        super().__init__()
        self.attributes('-alpha', 1) # 設置窗口透明度
        # self.attributes('-topmost', True) # 窗口置頂
        # self.attributes('-transparentcolor', '#000000')
        self.overrideredirect(True) # 去掉窗口邊框
        self.locked = False # 初始化鎖定狀態(tài)
        self.mouse_x = 0
        self.mouse_y = 0
        self.config(bg='#000000', highlightthickness=0, bd=0)
        
        
        # 獲取屏幕尺寸和窗口尺寸,使窗口居中
        screen_width = self.winfo_screenwidth()
        screen_height = self.winfo_screenheight()
        window_width = 400
        window_height = 100
        x = (screen_width - window_width) // 2
        y = (screen_height - window_height) // 2
        self.geometry('{}x{}+{}+{}'.format(window_width, window_height, x, y))
 
        # 添加日期時間標簽
        self.datetime_label = tk.Label(self, text='', font=('Arial', 20), fg='#FFFFFF', bg='#000000')
        self.datetime_label.place(relx=0.5, y=20, anchor='center')
 
        # 提示標簽
        self.note_label = tk.Label(self, text='123', font=('Arial', 14), fg='#FFFFFF', bg='#000000')
        self.note_label.place(relx=0.5, y=50, anchor='center')
 
        # 文本標簽
        self.text_label = tk.Label(self, text='', font=('Arial', 14), fg='#FFFFFF', bg='#000000')
        self.text_label.place(relx=0.5, y=80, anchor='center')
 
        # 添加鎖定按鈕
        self.lock_button = tk.Button(self, text='鎖定', font=('Arial', 10), command=self.toggle_lock)
        self.toggle_lock_button(True)
        self.toggle_lock_button(False)
 
        # 添加解鎖按鈕
        self.unlock_button = tk.Button(self, text='解除鎖定', font=('Arial', 10), command=self.toggle_lock)
        self.toggle_unlock_button(True)
        self.toggle_unlock_button(False)
 
        # 定時更新日期時間標簽
        self.update_datetime()
        # 定時更新text標簽
        self.update_text_label()
        # 定時更新note標簽
        self.update_note_label()
 
        # 綁定鼠標事件
        self.bind('<Button-1>', self.on_left_button_down)
        self.bind('<ButtonRelease-1>', self.on_left_button_up)
        self.bind('<B1-Motion>', self.on_mouse_drag)
        self.bind('<Enter>', self.on_mouse_enter)
        self.bind('<Leave>', self.on_mouse_leave)
 
        # 創(chuàng)建右鍵菜單
        self.menu = tk.Menu(self, tearoff=0)
        self.menu.add_command(label="退出", command=self.quit)
        self.bind("<Button-3>", self.show_menu)
 
 
    def toggle_lock_button(self, show=True):
        if show:
            self.lock_button.place(relx=1, rely=0.85, anchor='e')
        else:
            self.lock_button.place_forget()
    
    def toggle_unlock_button(self, show=True):
        if show:
            self.unlock_button.place(relx=1, rely=0.85, anchor='e')
        else:
            self.unlock_button.place_forget()
 
    def show_menu(self, event):
        self.menu.post(event.x_root, event.y_root)
 
    def update_datetime(self):
        now = datetime.datetime.now().strftime('%Y-%m-%d     \u270d     %H:%M:%S.%f')[:-4]
        msg = f'{now}'
        self.datetime_label.configure(text=msg)
        self.after(10, self.update_datetime)
 
    def update_text_label(self):
        now = '小鋒學長生活大爆炸'
        self.text_label.configure(text=now)
        self.after(1000, self.update_text_label)
 
    def update_note_label(self):
        # 指定日期,格式為 年-月-日
        specified_start_date = datetime.date(2023, 2, 20)
        specified_end_date = datetime.date(2023, 7, 9)
        today = datetime.date.today()
        # 計算距離指定日期過了多少周
        start_delta = today - specified_start_date
        num_of_weeks = math.ceil(start_delta.days / 7)
        # 計算距離指定日期剩余多少周
        end_delta = specified_end_date - today
        remain_weeks = math.ceil(end_delta.days / 7)
 
        msg = f'當前第{num_of_weeks}周, 剩余{remain_weeks}周({end_delta.days}天)'
        self.note_label.configure(text=msg)
        self.after(1000*60, self.update_note_label)
 
 
    def toggle_lock(self):
        if self.locked:
            self.locked = False
            self.toggle_lock_button(True)
            self.toggle_unlock_button(False)
        else:
            self.locked = True
            self.toggle_lock_button(False)
            self.toggle_unlock_button(True)
 
    def on_left_button_down(self, event):
        self.mouse_x = event.x
        self.mouse_y = event.y
 
    def on_left_button_up(self, event):
        self.mouse_x = 0
        self.mouse_y = 0
 
    def on_mouse_drag(self, event):
        if not self.locked:
            x = self.winfo_x() + event.x - self.mouse_x
            y = self.winfo_y() + event.y - self.mouse_y
            self.geometry('+{}+{}'.format(x, y))
 
    def on_mouse_leave(self, event):
        self.lock_button.place_forget()
        self.unlock_button.place_forget()
 
    def on_mouse_enter(self, event):
        if not self.locked:
            self.toggle_lock_button(True)
            self.toggle_unlock_button(False)
        else:
            self.toggle_lock_button(False)
            self.toggle_unlock_button(True)
 
 
if __name__ == '__main__':
    app = TransparentWindow(text_file='text.txt')
    app.mainloop()

效果

說明

關于背景顏色、日期等等內容,大家可以修改相應的代碼。

到此這篇關于Python調用ChatGPT制作基于Tkinter的桌面時鐘的文章就介紹到這了,更多相關Python ChatGPT制作桌面時鐘內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python Pandas找到缺失值的位置方法

    Python Pandas找到缺失值的位置方法

    下面小編就為大家分享一篇Python Pandas找到缺失值的位置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python基于checksum計算文件是否相同的方法

    Python基于checksum計算文件是否相同的方法

    這篇文章主要介紹了Python基于checksum計算文件是否相同的方法,涉及Python針對二進制文件的讀取與判定技巧,需要的朋友可以參考下
    2015-07-07
  • python繪圖坐橫坐標軸顯示方式

    python繪圖坐橫坐標軸顯示方式

    這篇文章主要介紹了python繪圖坐橫坐標軸顯示方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Django JWT Token RestfulAPI用戶認證詳解

    Django JWT Token RestfulAPI用戶認證詳解

    這篇文章主要介紹了Django JWT Token RestfulAPI用戶認證詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Python數據分析:手把手教你用Pandas生成可視化圖表的教程

    Python數據分析:手把手教你用Pandas生成可視化圖表的教程

    今天小編就為大家分享一篇Python數據分析:手把手教你用Pandas生成可視化圖表的教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python中seaborn庫之countplot的數據可視化使用

    Python中seaborn庫之countplot的數據可視化使用

    在Python數據可視化中,seaborn較好的提供了圖形的一些可視化功效。本文詳細的介紹了Python中seaborn庫之countplot的數據可視化使用,感興趣的可以了解一下
    2021-06-06
  • python實現三壺謎題的示例詳解

    python實現三壺謎題的示例詳解

    這篇文章主要介紹了python實現三壺謎題功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Django工程的分層結構詳解

    Django工程的分層結構詳解

    在本篇文章里小編給各位分享的是關于Django工程的分層結構的相關知識點內容,有興趣的朋友們學習參考下。
    2019-07-07
  • 對python 命令的-u參數詳解

    對python 命令的-u參數詳解

    今天小編就為大家分享一篇對python 命令的-u參數詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python tkinter 樹形列表控件(Treeview)的使用方法

    Python tkinter 樹形列表控件(Treeview)的使用方法

    這篇文章主要介紹了Python tkinter 樹形列表控件(Treeview)的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04

最新評論

喀喇| 竹山县| 临澧县| 江华| 微山县| 云霄县| 廊坊市| 天峻县| 黄陵县| 深圳市| 屏南县| 易门县| 通城县| 阿拉善右旗| 毕节市| 武川县| 黄龙县| 海城市| 陕西省| 平果县| 乌海市| 常熟市| 长垣县| 靖边县| 玉龙| 河津市| 田阳县| 安仁县| 社会| 专栏| 新绛县| 博乐市| 吉林省| 东方市| 瑞昌市| 惠水县| 普兰县| 娱乐| 宝鸡市| 株洲县| 东兴市|