第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python Tkinter 在更新輸出時刪除以前的小部件

Python Tkinter 在更新輸出時刪除以前的小部件

慕哥6287543 2021-10-05 16:26:03
我是 tkinter 的新手,但不是 Python 的新手,我一直在努力將我的舊代碼之一放在一個漂亮的 GUI 中。我當前的代碼由下拉菜單組成,在您輸入內(nèi)容后,您可以按下一個按鈕,該按鈕指向另一個函數(shù),該函數(shù)執(zhí)行一些計算并輸出其下方的復(fù)選框。我的問題是當我更改這些初始選擇時,之前的復(fù)選框選擇留在那里,而新的選擇只是在它下面,這會在以后弄亂其余的代碼。我一直在使用復(fù)選框在函數(shù)的開頭處理 frame.grid_forget() ,但無法讓它工作。我認為做這樣的事情:def click1(self):    frame4=Frame(self.window)    frame4.grid()    frame4.grid_forget()    frame4.grid()將通過創(chuàng)建框架,對其進行網(wǎng)格化,將其刪除并再次對其進行網(wǎng)格化來工作,這樣它就可以在該部分有效地重置自身,但對我來說卻不起作用。任何幫助表示贊賞,謝謝。
查看完整描述

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()

希望這可以幫助


查看完整回答
反對 回復(fù) 2021-10-05
?
暮色呼如

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)這有幫助!


查看完整回答
反對 回復(fù) 2021-10-05
  • 2 回答
  • 0 關(guān)注
  • 317 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號