#python #windows-10 #python-idle
#python #windows-10 #python-idle
Вопрос:
Я создал графический интерфейс Python с помощью Tkinter, но когда я запускаю его напрямую (дважды щелкните файл), он открывает черное окно python, но автоматически закрывается сам по себе менее чем за полсекунды. Я нашел способ заставить его открыть IDLE editor, но он просто открывает редактор и не запускает его.
Я хочу, чтобы он запускался так, как он запускается, когда вы открываете редактор IDLE и нажимаете Run Module. Это запускает его с использованием оболочки Python.
Есть ли способ заставить его автоматически запускаться с помощью оболочки Python?
Комментарии:
1. Назовите файл с помощью
.pyw
, и это не создаст окно консоли.2. Пожалуйста, укажите на свой вопрос, какую операционную систему вы используете.
3. Возможно, что ваш mygui.py отсутствует файл ‘root.mainloop()’ или эквивалент для запуска графического интерфейса. IDLE позволяет исключить это во время разработки, чтобы можно было взаимодействовать с tkinter для извлечения значений и внесения изменений в виджеты.
Ответ №1:
Основываясь на комментарии Марка Толонена, вы должны сделать две вещи
-
переименуйте свой файл в
.pyw
from.py
, чтобы предпочесть запуск без консоли -
настройте свою систему на открытие
.pyw
файлов с помощьюpythonw
, если это еще не настроено- Linux: настройка xdg-открыть
- Windows: щелкните правой кнопкой мыши и выберите приложение из контекстного меню (возможно, вам потребуется найти, где установлен Python, чтобы выбрать
pythonw.exe
исполняемый файл)
Комментарии:
1. Я только что попробовал это, но после этого по какой-то причине это вообще ничего не делает. Я дважды щелкаю по нему, и ничего не происходит.
2. Перечитывая ваш вопрос, извините, я считаю, что комментарий инвертирован, и поэтому вы можете захотеть, чтобы этот эффект был противоположным. Это предотвратит появление окна оболочки, хотя, предположительно, вы хотите, чтобы оно оставалось.
Ответ №2:
Хорошо, один из комментариев к исходному вопросу правильный.
Как сказал Терри Джан Риди (пользователь: 722804),
Возможно, что ваш mygui.py отсутствует файл ‘root.mainloop()’ или эквивалент для запуска графического интерфейса. IDLE позволяет исключить это во время разработки, чтобы можно было взаимодействовать с tkinter для извлечения значений и внесения изменений в виджеты.
Добавление gui.mainloop()
в конец моей программы сработало.