Импорт файлов tkinter в основной файл tkinter - PullRequest
0 голосов
/ 18 апреля 2020

Я сделал master.py файл tkinter, в котором есть окно входа в систему. После успешной аутентификации открывается окно верхнего уровня, в котором есть несколько вариантов на выбор. Каждая опция из меню запускает файл tkinter для конкретных c задач, которые необходимо выполнить. Эти python файлы сохраняются в том же каталоге.

Я изначально использовал метод os.system() для запуска файла python при выборе опции, но я хочу связать файл python appointment.py с master.py с использованием операторов импорта. Вот что я сделал:

def drawWin():
    # some other code
    itemone.add_command(label='Add Appointment', command=self.appointment)

def appointment(self):
    import appointment

appointment.py имеет код tkinter, использующий структуру классов. Он содержит метод __init__ и другие методы для окна и другие функции.

Когда выбран параметр и выполняется оператор import, окно загружается успешно, но значок окна не появляется который работал раньше. Это также показывает следующую ошибку:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.7/tkinter/__init__.py", line 1705, in __call__
    return self.func(*args)
  File "master.py", line 129, in appointment
    import appointment
  File "/appointment.py", line 140, in <module>
    appRoot.iconphoto(False, tk.PhotoImage(file='resources/icon.png'))
  File "/usr/lib/python3.7/tkinter/__init__.py", line 1910, in wm_iconphoto
    self.tk.call('wm', 'iconphoto', self._w, *args)
_tkinter.TclError: can't use "pyimage4" as iconphoto: not a photo image

Как я могу решить эту проблему и успешно импортировать их? У меня есть 3 таких файла, которые должны быть импортированы с помощью меню выбора в верхней части окно.

...