2015-07-10 28 views
1

我想從Python 2.7中的Tkinter Gui打開一個單獨的窗口。新窗口有複選框,並基於複選框狀態,我打算有一個按鈕來運行一些任務。我的問題是,當我爲新窗口嵌入腳本並將複選框複選到現有的pythons腳本中時,複選框的變量狀態始終爲「0」。當我本身運行的複選框劇本,一切正常......這裏是我的代碼:從Python腳本獲取複選框狀態嵌入在另一個腳本

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

很確定你應該只運行一次mainloop。 – Muposat

回答

1

這是因爲你已經有了另一WM(root = tkinter.Tk()master = Tk())。
您可以使用:master = tkinter.TopLevel(…)
而且,當然,只有一個主循環。

相關問題