0
我想要得到的:複選框狀態的變化會將Entry小部件的狀態從'禁用'更改爲'正常'。 (複選框關閉=輸入禁用,複選框=輸入正常)。 我的問題是,我不知道如何訪問和更新條目的狀態。對象(tkinter,Python3)初學者級別的訪問狀態
我的代碼:
from tkinter import *
from tkinter import ttk
class App(Frame):
def __init__(self, master):
ttk.Frame.__init__(self, master, padding='20')
self.grid()
self.create_checkbox()
self.create_entry()
def create_checkbox(self):
self.limit = BooleanVar()
Checkbutton(self,
text='Limit length',
variable= self.limit,
command= self.state_update,
).grid(row=1, column=1, sticky=W)
def create_entry(self):
self.entry_low = StringVar()
Entry(self,
width=6,
textvariable=self.entry_low,
state='disabled',
).grid(row=1, column=2, sticky=W)
def state_update(self):
self.entry_low.config(state="normal") #THIS OBVIOUSLY DOES NOT WORK
root = Tk()
root.title("Lottery")
app = App(root)
root.mainloop()
我是初學者,所以我會簡單的解決方案,特別感謝。
你會想一個['STRINGVAR()'或'BooleanVar()'](http://effbot.org/tkinterbook/variable.htm)添加到checkbutton再考慮添加跟蹤,到STRINGVAR。一旦設置了跟蹤,您可以使用它來檢測何時更改了檢查按鈕並相應地更新條目的狀態。 – Jkdc
@Jkdc:不需要追蹤。這就是'command'屬性的用途。 –
@Jkdc,謝謝!顯然,有沒有想過它,這工作很適合我。我也將嘗試由Bryan下面給出的解決方案。 – oboer