【问题标题】:Python 2.7 Tkinter redraw widget inside ifPython 2.7 Tkinter 在 if 中重绘小部件
【发布时间】:2013-03-04 08:50:13
【问题描述】:

我在 Python 2.7 中的 Tkinter 代码有问题。我有一个带有一个小部件(按钮)的主窗口。单击按钮后,我想重绘窗口(并更改变量的值-> 添加一个小部件)。问题出在哪里?我认为这个问题可能是,mainloop 的每个循环都将变量更改为 0。谢谢!

from Tkinter import *

def function():
    global variable
    variable = 0
    main.update()

variable = 0
main = Tk() #New Tk window

if variable == 1:
    Checkbutton(main, text="test").pack()

Button(main, text="Change", command=function).pack()

main.mainloop()

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    您永远不会将变量设置为 1,在使用 GUI 时您应该使用函数(和类)。

    from Tkinter import *
    main = Tk() #New Tk window
    variable = 0
    
    def function():
        global variable
        variable = 1
        newThing()
    
    def newThing(): 
       global variable
       if variable==1:
           Checkbutton(main, text="test").pack()
       variable = 0
    
    Button(main, text="Change", command=function).pack()
    main.mainloop()
    

    【讨论】:

    • 我的主要代码在 OOP 中,我想写一个简单的例子。因此,如果没有功能,则无法回忆。抱歉,我在 function() 中有错误,我的意思是变量 = 1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    相关资源
    最近更新 更多