如果选择了Optionmenu上的特定项,则创建一个输入框

2024-04-20 08:40:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个输入框,让用户手动输入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()

如前所述,如果用户需要选择不在列表中的变量。是否可以允许用户通过同一窗口中的输入框手动输入变量(例如:在生成条目/小部件/其他内容的列表中选择“其他”)?在


Tags: 用户importselfmaster列表main部件tkinter
1条回答
网友
1楼 · 发布于 2024-04-20 08:40:14

如果有人在找同样的东西。这个过程是将命令变量添加到optionmenu,并在所需的高亮显示选项打开后禁用entry小部件。这是通过使用.config(state=NORMAL)或.config(state=DISABLED)配置按钮/widget/anything来完成的。在

 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 

相关问题 更多 >