我试图在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()
答案 0 :(得分:1)
这是因为你有另一个WM(root = tkinter.Tk()
和master = Tk()
)。
您可以使用:master = tkinter.TopLevel(…)
当然,只有一个主循环。