从另一个脚本中嵌入的python脚本中获取Checkbox状态

时间:2015-07-10 14:45:55

标签: python checkbox tkinter

我试图在Python 2.7中打开一个与Tkinter Gui分开的窗口。新窗口有复选框,并根据复选框状态,我打算有一个按钮来运行一些任务。我的问题是,当我为新窗口嵌入脚本并将复选框复选到我现有的pythons脚本中时,复选框的变量状态总是显示为" 0。"当我单独运行复选框的脚本时,一切正常......这是我的代码:

from Tkinter import *
import Tkinter
import tempfile

root = Tkinter.Tk()
root.title("Main Window")
root.geometry("200x225")

def NewWindow():
    master = Tk()
    master.title("Select Unit Load Components")
    master.geometry("400x500")

    var1 = Tkinter.IntVar()
    var2 = Tkinter.IntVar()
    var3 = Tkinter.IntVar()
    var4 = Tkinter.IntVar()
    var5 = Tkinter.IntVar()
    var6 = Tkinter.IntVar()

    def var_states():
        print("FX: %d, FY: %d, FZ: %d, MX: %d, MY: %d, MZ: %d" % (var1.get(), var2.get(), var3.get(),var4.get(), var5.get(), var6.get()))

    Checkbutton(master, text="FX", variable=var1).grid(row=1,column=1, sticky=W)
    Checkbutton(master, text="FY", variable=var2).grid(row=1,column=2, sticky=W)
    Checkbutton(master, text="FZ", variable=var3).grid(row=1,column=3, sticky=W)
    Checkbutton(master, text="MX", variable=var4).grid(row=1,column=4, sticky=W)
    Checkbutton(master, text="MY", variable=var5).grid(row=1,column=5, sticky=W)
    Checkbutton(master, text="MZ", variable=var6).grid(row=1,column=6, sticky=W)

    Button(master, text='Show', command=var_states).grid(row=3, sticky=W, pady=4)
    mainloop()

Bttn1 = Tkinter.Button(root, text ="Open Sub Window", command = NewWindow)
Bttn1.pack(side = TOP,padx=10,pady=5)

Bttn3=Tkinter.Button(root, text='Exit', command = root.quit)
Bttn3.pack(side = TOP,padx=50,pady=30)

root.mainloop()

1 个答案:

答案 0 :(得分:1)

这是因为你有另一个WM(root = tkinter.Tk()master = Tk())。 您可以使用:master = tkinter.TopLevel(…)
当然,只有一个主循环。

相关问题