2 回答

TA貢獻1811條經(jīng)驗 獲得超4個贊
Tkinter 中有可用的控制變量,可讓您根據(jù)變量的內(nèi)容控制小部件中顯示的內(nèi)容。
tk.StringVar (as used below)
tk.DoubleVar can hold a Float
tk.IntVar can hold an int
這些使您可以在不破壞和重新創(chuàng)建的情況下更改小部件的內(nèi)容。您的問題是指將鏈接到 IntVars 的 CheckBoxes。
下面是顯示每次單擊按鈕時增加計數(shù)的 Label 的代碼。
import tkinter
from tkinter import *
class GUI:
def __init__(self):
self.window=Tk()
self.frame=Frame(self.window)
self.frame.grid()
# Define something to change on click.
self.count=0
# Create a StringVr to hold it.
self.label_text=StringVar()
# Link to a label
self.label_text.set("Count = "+str(self.count))
Label(self.frame, textvariable=self.label_text).grid()
Button(self.frame,text="Click", command=self.on_click).grid()
tkinter.mainloop()
def on_click(self):
# Update Count and the label on click
self.count+=1
self.label_text.set("Count = "+str(self.count))
GUI()
希望這可以幫助

TA貢獻1853條經(jīng)驗 獲得超9個贊
我還沒有收到任何回復(fù),但為了供大家參考,我又玩了一些,找到了答案:
import tkinter
from tkinter import *
class GUI:
def __init__(self):
self.window=Tk()
self.frame=Frame(self.window)
self.inner=Frame(self.window)
self.frame.grid()
self.inner.grid()
Button(self.frame,text="Click",command=self.clear).grid()
tkinter.mainloop()
def click(self):
self.inner=Frame(self.frame)
self.inner.grid()
Label(self.inner,text='Hello!').grid()
def clear(self):
self.inner.destroy()
self.click()
GUI()
我之前試圖在函數(shù)中做所有事情,但發(fā)現(xiàn)最好的方法是在初始化函數(shù)中創(chuàng)建包含框架,然后路由按鈕以銷毀它們,然后在您希望按鈕直接路由的函數(shù)中重新創(chuàng)建它們到。似乎一個小彎路解決了一切,不敢相信我花了幾個小時尋找答案,然后自己找到了。希望其他人能發(fā)現(xiàn)這有幫助!
添加回答
舉報