Я пытаюсь создать окно ввода для ввода пользователем переменной, которая не существует в списке виджета 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()
Как уже упоминалось, если пользователю необходимо выбрать переменную, которой нет в списке. Возможно ли разрешить пользователю вручную вводить переменную через поле ввода в том же окне (например: выбор «Другое» в списке, который генерирует запись/виджет/что-то)?
Я думаю, что вы можете использовать testnumber [ "Меню"]. Удалить (0, END), чтобы удалить, а затем testnumber [ "Меню"]. Add_command (метка = choices_item, ... и т.д.., Чтобы добавить все Элементы. Это может быть не совсем правильно, но достаточно близко, чтобы найти ответ через поисковую систему. –
Возможно, вам придется упаковать свои объекты ('OptionMenu',' Button') с помощью метода 'pack'. –