2016-01-12 72 views
-1

我正嘗試爲用戶創建一個輸入框,以手動輸入一個不存在於optionmenu小部件列表中的變量。這可能嗎?如果選擇了Optionmenu上的特定項目,請創建一個輸入框

from Tkinter import * 
import Tkinter as tk 

class Demo1: 
    def __init__(self, master): 
     self.master = master 
     self.frame = tk.Frame(self.master) 
     x = (master.winfo_screenwidth() - master.winfo_reqwidth())/2 
     y = (master.winfo_screenheight() - master.winfo_reqheight())/2 
     master.geometry("+%d+%d" % (x, y)) 
     master.deiconify() 

     self.subtests = StringVar() 
     self.subtests.set("Enter Test Type") 

     choices = ['Potato','Tomato','Onion','Other'] 
     self.testnumber = OptionMenu(master, self.subtests, *choices).grid(row = 2, column = 3) 
     self.confirmbutton = Button (master, text="Confirm Test", width=20, command =lambda: self.confirmsubtest(master)) 
     self.confirmbutton.grid(row = 5, sticky = E) 

def main(): 
    root = tk.Tk() 
    app = Demo1(root) 
    root.mainloop() 

if __name__ == '__main__': 
    main() 

如前所述,如果用戶需要選擇不在列表中的變量。是否有可能允許用戶通過同一個窗口中的輸入框手動輸入變量(例如:在列表中選擇生成入口/窗口小部件的「其他」)?

+0

我認爲你可以使用testnumber [ 「菜單」。刪除(0,END)刪除,然後testnumber [ 「菜單」。add_command(標籤= choices_item,...等等。添加所有的這可能不完全正確,但足夠接近以通過搜索引擎找到答案 –

+0

您可能必須使用'pack'方法打包對象('OptionMenu','Button')。 –

回答

0

如果有人搜索相同的東西。該過程是將命令變量添加到選項菜單,並在所需的突出顯示選項打開時禁用條目窗口小部件。這是通過使用.config(state = NORMAL)或.config(state = DISABLED)配置button/widget /任何東西來完成的。

self.testnumber = OptionMenu(master, self.subtests, *choices, command = self.optupdate).grid(row = 2, column = 3) 
self.testnumber.grid(row = 4, column = 1) 

    def optupdate(self,value): 
    if value == "Other": 
     self.otherEntry.config(state=NORMAL) 
    else: 
     self.otherEntry.config(state=DISABLED) 
    return 
相關問題