胡寬佑VSCode自訂方法canvas.delete('all')建構Button
劉任昌VSCode自訂方法canvas.delete('all')建構Button
微軟VS Code編輯環境與執行結果
程式碼
#原來240單元程式碼如下 from tkinter import * #從函式庫 tkinter 輸入所有 * 方法 from math import * #從函式庫 math 輸入所有 * 方法 t = (3,4,5,6,7,8,9,10,11,12,16,20)#宣告一元組tuple(...) tk = Tk() tk.title("劉任昌視窗使用者介面GUI") canvas = Canvas(tk, width=800, height=500) #建立視窗 canvas.pack() def show(event): #定義由事件event(按鈕選單)呼叫的函數show cx, cy, cr = 110, 210, 100 #宣告圓中心座標cx, cy半徑cr x, y =[],[] #宣告二陣列[...] k = s.get() #取得 ge t按鈕選單的選擇變數 u = 2 * pi / k #使用模組 math 圓周率 pi for i in range(k): x.append(cx + cr*cos(i*u)) #加入陣列的元素 y.append(cy + cr*sin(i*u)) #使用模組 math 三角函數cos, sin for i in range(k-1): canvas.create_line(x[i], y[i], x[i+1], y[i+1]) canvas.create_line(x[k-1], y[k-1], x[0], y[0], fill="bule", width=5) #可考慮增加width寬度,fill顏色 def diagonal(): cx, cy, cr = 410, 210, 100 #宣告圓中心座標cx, cy半徑cr x, y =[],[] #宣告二陣列[...] k = s.get() #取得 ge t按鈕選單的選擇變數 u = 2 * pi / k #模組 math 圓周率 pi for i in range(k): x.append(cx + cr*cos(i*u)) #加入陣列的元素 y.append(cy + cr*sin(i*u)) for i in range(k): for j in range(i+2, k): canvas.create_line(x[i], y[i], x[j], y[j], fill="green", width=4) def clear(): #新建立方法 清除所有圖 canvas.delete('all') s = IntVar(tk) label = Label(tk, text="劉任昌設計Python圖形介面", bg='blue', fg='white').pack(side=LEFT) combo = OptionMenu(tk, s, *t, command = show).pack(side=LEFT) #下拉式選單menu button = Button(tk, text="對角線", command = diagonal).pack(side=LEFT)#按鈕 button1 = Button(tk, text="清除", command = clear).pack(side=LEFT)#按鈕 tk.mainloop()
留言
張貼留言