程式碼註解

Python 函數def 函數名稱: def draw(): canvas繪圖套件 create_line(x起點,y起點,x終點,y終點) def draw第二個delete
def draw():#按下按鈕button1執行draw
canvas.create_line(0,500,700,500,width=3,fill='black',arrow='last')
    canvas.create_line(10,600,10,5,width=3,fill='black',arrow='last')
    for firm in firms:
        t=(firm, year.get())
        x = 10+20*stdev[t]*2*3**0.5 #放大20
        y = 500 - 10*mean[t]*12     #放大10
        dot=canvas.create_oval(x-5,y-5,x+5,y+5,fill='blue')
        lab=canvas.create_text(x+10,y,text=firm[4:7],anchor=W,font=('微軟中黑體', 16))
def delete():#按下按鈕button2執行delete
    canvas.delete('all')
years=[x for x in range(2007, 2025)]
year=IntVar(tk)
year.set(years[0])
label = Label(tk, text="年度",font=('Arial',30,'bold'),).pack(side=LEFT)  #距離左側
option1 = OptionMenu(tk, year, *years).pack(side=LEFT)
button1 = Button(tk, text="賴青德繪圖 ",font=('Arial',30,'bold'), command = draw, bg='black',fg='white').pack(side=LEFT)
button2 = Button(tk, text="賴青德刪除 ",font=('Arial',30,'bold'), command = delete, bg='black',fg='white').pack(side=LEFT)
tk.mainloop()
#label button1 button2都改變字體
  
這是一個完整的 Tkinter 應用程式,其中包含您提供的程式碼,並將標籤和按鈕的字體設定為您指定的樣式。

我為 firms、stdev 和 mean 添加了一些範例資料,以便您可以執行程式碼並看到繪圖功能。
Tkinter 繪圖應用程式
6月27日 下午2:04

 不要用「Canvas」,再試一次 

說明:

導入必要的模組:tkinter 被導入為 tk,並且從中導入了 Label, OptionMenu, Button, W, LEFT, IntVar 等常用組件。

初始化 Tkinter 視窗:tk = tk.Tk() 創建了主視窗。

創建畫布:canvas = tk.Canvas(...) 創建了一個用於繪圖的區域。

範例資料:我添加了 firms, stdev, mean 的範例資料。在實際應用中,您需要用您的真實資料替換這些內容。請注意 stdev 和 mean 的鍵是 (firm_tuple, year) 的形式。

draw 函數:

繪製了 X 軸和 Y 軸。

遍歷 firms 列表,並根據選定的年份從 stdev 和 mean 字典中獲取數據。

計算點的 x 和 y 座標,並繪製藍色圓點。

在點旁邊繪製文本標籤。

添加了 if t in stdev and t in mean: 檢查,以避免在數據不存在時出現 KeyError。

delete 函數:清除畫布上的所有內容。

年份選擇:創建了一個 IntVar 來儲存選定的年份,並使用 OptionMenu 讓用戶選擇。

標籤和按鈕:

Label(tk, text="年度", font=('Arial', 30, 'bold')).pack(side=LEFT):設定了「年度」標籤的字體為 Arial,大小 30,粗體。

Button(tk, text="賴青德繪圖 ", font=('Arial', 30, 'bold'), ...):設定了「賴青德繪圖」按鈕的字體。

Button(tk, text="賴青德刪除 ", font=('Arial', 30, 'bold'), ...):設定了「賴青德刪除」按鈕的字體。

option1.config(font=('Arial', 20)):為選項菜單本身設定了字體,使其下拉選項的字體也更大。

主事件循環:tk.mainloop() 啟動 Tkinter 的事件循環,使應用程式保持運行並響應用戶交互。

現在您可以複製此程式碼並執行它,它將顯示一個 Tkinter 視窗,其中包含帶有指定字體的標籤和按鈕。


留言

  1. 期末考放影片。https://chen-yu-hsi.blogspot.com/2025/06/blog-post_26.html

    回覆刪除

張貼留言

這個網誌中的熱門文章

產業分析作業

陳瑀晞python運算CSV輸出TKINTER投資風險與報酬Markowitz

馬可維茲風險平均數平面