Я сделал 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 таких файла, которые должны быть импортированы с помощью меню выбора в верхней части окно.