3
以下是我的腳本。基本上,它會要求用戶在輸入框中輸入一個數字。一旦用戶輸入一個數字並點擊確定,它會給你組合標籤+按鈕取決於用戶輸入到輸入框中的數字。Python Tkinter:尋址由for循環創建的標籤小部件
from Tkinter import *
root=Tk()
sizex = 600
sizey = 400
posx = 0
posy = 0
root.wm_geometry("%dx%d+%d+%d" % (sizex, sizey, posx, posy))
def myClick():
myframe=Frame(root,width=400,height=300,bd=2,relief=GROOVE)
myframe.place(x=10,y=10)
x=myvalue.get()
value=int(x)
for i in range(value):
Mylabel=Label(myframe,text=" mytext "+str(i)).place(x=10,y=10+(30*i))
Button(myframe,text="Accept").place(x=70,y=10+(30*i))
mybutton=Button(root,text="OK",command=myClick)
mybutton.place(x=420,y=10)
myvalue=Entry(root)
myvalue.place(x=450,y=10)
root.mainloop()
通常情況下,當我創建一個標籤控件,我會做這樣的事情
mylabel=Label(root,text='mylabel')
mylabel.pack()
所以,當我想以後改變我的標籤的文本,我可以只是簡單地做這
mylabel.config(text='new text')
但是現在,因爲我使用for循環來一次創建所有標籤,無論如何要在創建標籤後解決各個標籤? 例如,用戶在輸入框中鍵入'5',程序將給我5個標籤+5個按鈕。無論如何,我可以改變各個標籤的屬性(即label.config(..))嗎?
是唯一的方法嗎?因爲如果用戶輸入1000,那麼標籤列表將具有1000的長度,這幾乎不可能像myClick2函數那樣使用'if'函數。並且我不能使用for循環來更改所有標籤,因爲每個單獨標籤都需要有不同的文字。但非常感謝您的幫助。 – 2013-04-04 06:05:38
我剛剛包含'if'作爲如何在代碼中設置標籤配置值的示例。您仍然可以使用for循環更改標籤,您只需將所有需要的標籤保留在列表中並在循環中引用它們即可。另外請注意,您可以進行檢查以確保用戶輸入了合理的值,而不是1000。 – twasbrillig 2013-04-04 06:24:20