Python: загрузить интерфейс из отдельного файла - PullRequest
1 голос
/ 13 октября 2011

G'day All,

Я использую tkinter для моего GUI.В настоящее время, когда я пишу приложение, большая часть кода - это виджеты интерфейса.Я знаю, как импортировать файл определенных функций и использовать их, и я хочу иметь возможность "импортировать" пользовательский интерфейс.Таким образом, я могу повторно использовать файл пользовательского интерфейса и очистить основное приложение.

Концептуальное препятствие, с которым я сталкиваюсь, заключается в том, что если я объявлю окно:

main = Tk()

как мне тогда заполнитьmain »из другого модуля?

Спасибо, А.

Ответы [ 2 ]

0 голосов
/ 13 октября 2011

Моя рекомендация не делать main=Tk().Вместо этого ваш UI наследуется от Tk.Например:

# in ui.py
import Tkinter as tk
class MyApp(tk.Tk):
    def __init__(self, *args, **kwargs):
        ...

# in main.py
import ui
def main():
    main = ui.MyApp()
    main.mainloop()

Если вам не нравится наследование от tk.Tk, другой вариант - создать главное окно, а затем передать его в качестве аргумента любому коду, который создает GUI.Например:

# ui.py
def CreateUI(root)
    ...

# main.py
import ui
def main():
    root = tk.Tk()
    ui.CreateUI(root)
0 голосов
/ 13 октября 2011

вы можете передать его как параметр типа import my_gui; my_gui.create(main); но в большинстве случаев я бы порекомендовал работать наоборот - файл GUI должен быть тем файлом, который вы выполняете, и он импортирует функции обработки чисел из вашей библиотеки основных функций

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