繁体   English   中英

python tkinter和stringvar()的范围

[英]python tkinter and scope of stringvar()

Python noob在这里。 我创建了一个简单的6帧tkinter应用程序。 使用多个框架是让所有小部件排列起来的最简单方法。

我想在其中一个框架中有一个文本输入字段,可以通过代码中的其他功能进行更新。 但是,无论我尝试什么,都无法使blah.set(“ blah”)正常工作。

我没有使用自我/父母的东西,因为我还不能弄清楚。 这是我得到的:

def Next () :

    glob_current_company_display.set( "test" )


def makeWindow () :

    win = Tk()
    win.title('Finder')
    win.geometry('+842+721')

    # ************************************************************************
    # Frame 2
    frame2 = Frame(win)
    button_03 = Button(frame2, text="Next", width=10, command=Next)
    button_03.pack(side=LEFT)

    # ************************************************************************
    # Frame 5
    frame5 = Frame(win)
    co_name_label = Label(frame5, text="Company Name: ", justify=LEFT)
    co_name_label.pack(side=LEFT)

    global glob_current_company_display 
    glob_current_company_display = StringVar()
    co_name_entry = Entry(frame5, width=50, textvariable=glob_current_company_display)

    co_name_entry.pack(side=LEFT)

    # ************************************************************************
    # Pack the frames

    frame5.pack(side=TOP, pady=5, padx=5)
    frame2.pack(side=TOP, pady=5, padx=5)

    return win


win = makeWindow()

win.mainloop()

您可能应该调查“自我/父母的东西”。 这种东西非常方便。 现在:您可以将全局变量的创建放在具有Next()作为命令的button_03之前(在其中引用te global)。

from Tkinter import *

def Next () :
    glob_current_company_display.set( "test" )

def makeWindow () :



    win = Tk()
    win.title('Finder')
    win.geometry('+842+721')

    global glob_current_company_display 
    glob_current_company_display = StringVar()

    # ************************************************************************
    # Frame 2
    frame2 = Frame(win)
    button_03 = Button(frame2, text="Next", width=10, command=Next)
    button_03.pack(side=LEFT)

    # ************************************************************************
    # Frame 5
    frame5 = Frame(win)
    co_name_label = Label(frame5, text="Company Name: ", justify=LEFT)
    co_name_label.pack(side=LEFT)


    co_name_entry = Entry(frame5, width=50, textvariable=glob_current_company_display)

    co_name_entry.pack(side=LEFT)

    # ************************************************************************
    # Pack the frames

    frame5.pack(side=TOP, pady=5, padx=5)
    frame2.pack(side=TOP, pady=5, padx=5)

    return win

win = makeWindow()

win.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM