將OptionMenu改成Entry
將OptionMenu改成Entry完整程式碼
from tkinter import * #從函式庫 tkinter 輸入所有 * 方法
import math #從函式庫 math 輸入所有 * 方法
from time import *
from random import *
class Regular:
def __init__(self, cx, cy, cr, s, t, c, w): #類別共同的設定必然 def __init__ initiate發起
self.cx, self.cy, self.cr = cx, cy, cr #取得中心座標cx, cy, 半徑cr
self.s, self.t = s, t #取得邊角數目s,t尖銳程度,取代原來的k = s.get()
self.c, self.w = c, w #取得顏色c,寬度w
self.u = 2 * math.pi / self.s #使用模組 math 圓周率 pi
self.x, self.y = [], []
for i in range( int(self.s * 1.5)):
self.x.append(self.cx + self.cr*math.cos(i*self.u))
self.y.append(self.cy + self.cr*math.sin(i*self.u))
def drawLine(self, x0, y0, x1, y1):
canvas.create_line(x0, y0, x1, y1, width = self.w, fill=self.c)
def draw(self): #類別的方法
secondTime = second.get() #取得輸入的second變數,當作區域變數secondTime
for i in range( int(self.s * 1.5) - self.t):
self.drawLine(self.x[i], self.y[i], self.x[i + self.t], self.y[i + self.t])
sleep(secondTime) #休息
tk.update()
def show(): #畫圖 define自訂函數
poly = Regular(cx.get(), cy.get(), cr.get(), s.get(), t.get(), c.get(), w.get())
polyList.append(poly)
polyList[len(polyList)-1].draw()
def clear(): #清除視窗的all所有canvas圖
canvas.delete('all')
def showAll():
for i in range(len(polyList)):
polyList[i].draw()
def showRemove():
removeId = remove.get() #取得輸入的remove變數,當作區域變數removeId
polyList.pop(removeId - 1)
clear()
showAll()
def begin():
label_0 = Label(tk, text="劉任昌輸入時間:",font=('標楷體',16)).pack(side=TOP, anchor=NW)
entry_0 = Entry(tk,textvariable = second, font=('微軟中黑體',16)).pack(side=TOP, anchor=NW)
label_1 = Label(tk, text="要移除第幾個?",font=('標楷體',16)).pack(side=TOP, anchor=NW)
entry_1 = Entry(tk,textvariable = remove, font=('微軟中黑體',16)).pack(side=TOP, anchor=NW)
button3 = Button(tk, text="移除後的更新", font=('微軟中黑體',16),command = showRemove, bg='red', fg='white').pack(side=TOP, anchor=NW)
polyList = [] #建構串列(清單,陣列)list,還是空的,名稱是polyList
xyr = (50,75,100,150,200,250,300,350,400,500,600)
st = (1,2,3,4,5,6,7,8,9,10,11,12,16,20,24,28,32)
tk = Tk() #井Number sign, hash建構視窗,名為tk
tk.title("劉任昌視窗使用者介面GUI") #也可以定義視窗名為 window, root課本都如此習慣
second, remove = DoubleVar(tk), IntVar(tk)
second.set(0.1) #預設值0.1秒
remove.set(1)
begin()
canvas = Canvas(tk, width=1000, height=450)
canvas.pack()
cx, cy, cr, s, t = IntVar(tk),IntVar(tk),IntVar(tk),IntVar(tk),IntVar(tk)
cx.set(xyr[3]) #預設座標 x=200
cy.set(xyr[3]) #預設座標 y=200
cr.set(xyr[1]) #預設半徑 r=100
s.set(st[9]) #預設邊形 8
t.set(st[0]) #預設堅度 1即凸多邊形
l1 = Label(tk, text="位置x ",font=('微軟正黑體',16)).pack(side=LEFT) #距離左側
entry1 = Entry(tk, textvariable = cx, width=4, font=('微軟中黑體',16)).pack(side=LEFT)
l2 = Label(tk, text="位置y ",font=('微軟正黑體',16)).pack(side=LEFT) #距離頂端
option2 = OptionMenu(tk, cy, *xyr).pack(side=LEFT)
l3 = Label(tk, text="半徑r ",font=('微軟正黑體',16)).pack(side=LEFT) #半徑
entry3 = Entry(tk,textvariable = cr, width=4, font=('微軟中黑體',16)).pack(side=LEFT) #半徑改成手動輸入,Entry 建構輸入方塊, 建構在視窗tk, 輸入的文字變數textbariable存成cr變數, 寬度10, font字型, 打包pack排列在tk視窗靠左
label4 = Label(tk, text="邊形s ",font=('標楷體',16)).pack(side=LEFT) #幾個邊
entry4 = Entry(tk, textvariable = s, width=4, font=('微軟中黑體',16)).pack(side=LEFT)
label5 = Label(tk, text="堅度t ").pack(side=LEFT) #相鄰建構,尖銳度
entry5 = Entry(tk, textvariable = t,width=4, font=('微軟中黑體',16)).pack(side=LEFT)
label6 = Label(tk, text="顏色").pack(side=LEFT) #顏色
c = StringVar(tk)
colorL = ('black','red', 'green', 'blue', 'purple', 'gray')
c.set(colorL[0])
option6 = OptionMenu(tk, c, *colorL).pack(side=LEFT)
label7 = Label(tk, text="寬度").pack(side=LEFT) #寬度
w = IntVar(tk)
widthL = (1, 2, 3, 4, 5, 6)
w.set(widthL[3])
option7 = OptionMenu(tk, w, *widthL).pack(side=LEFT)
button = Button(tk, text=" 繪圖 ", command = show, bg='black',fg='white').pack(side=LEFT)
button1 = Button(tk, text="移除All", command = clear).pack(side=LEFT)
button2 = Button(tk, text="復原All", command = showAll, bg='red', fg='white').pack(side=LEFT)
tk.mainloop()
https://enchenghu0905.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://rtytrdtfg.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://d11150114.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://jdoifjopq1264.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://d11150116.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://xdrcfvghyujiok8945656.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://cpc920508123.blogspot.com/2023/06/entry.html
回覆刪除https://d11150110.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://tgyhjikolujik2554.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://cindy-javascript.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://jjjjjyyy.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://spencer0309.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://unnnn20.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://iuytjhg5261.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除作者已經移除這則留言。
回覆刪除https://html-css-javascript-yaoto.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://draft.blogger.com/u/1/blog/post/edit/3689477265477948635/597007342170348320
回覆刪除作者已經移除這則留言。
回覆刪除https://chenyouzheng0329.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://643gjeytfru4312.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://michael-d11117126.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://hsiehyuche.blogspot.com/2023/06/from-tkinter-import-tkinter-import-math.html
回覆刪除https://ying1005d11117136.blogspot.com/2023/06/entrytextvariablefont.html
回覆刪除https://takmingd11117123.blogspot.com/2023/06/class-initself_11.html
回覆刪除