Раскрывающееся меню Tkinter переходит в бесконечный цикл - PullRequest
0 голосов
/ 02 февраля 2012

Я использую следующий фрагмент кода, принятого отсюда Мне нужно, чтобы он дождался, когда пользователь выберет опцию, а затем вставит ее в оставшуюся часть кода (чтобы добавить в XML-файл -программа генератора метаданных, над которой я работаю с подробной информацией здесь )

from Tkinter import *

def print_it(event):
   print var.get()

root = Tk()
var = StringVar()
var.set("Set Copyright for: " + str(File))
OptionMenu(root, var, "Internal Use Only","Internal & Community Use","Whole Of Government Use", "Project Specific Licence","No licence constraints on ATGIS/TRC use", command=print_it).pack()
root.mainloop() 

это должно быть частью определения выше?

for node in tree.findall('.//copyright'):
    node.text = str(var) # not sure how to call the output.

1 Ответ

1 голос
/ 02 февраля 2012

Вы запустили цикл обработки событий с помощью:

root.mainloop() 

Похоже, вам просто нужно место для выхода из цикла и выполнения другой обработки.Например, поскольку процесс print_it выглядит идеально расположенным, вы можете изменить его следующим образом:

def print_it(event):
    print var.get()
    root.quit()

Теперь, когда выполняется print_it, основной цикл завершается - любой код ниже root.mainloop ()исполнено сразу.Таким образом, вы могли бы продолжить оттуда ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...