Как создать графический интерфейс для программы на Python? [закрыт]
Закрыт. Данный вопрос необходимо конкретизировать. Ответы на него в данный момент не принимаются.
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.
Закрыт 3 года назад .
- «шапка приложения» — верхняя полоса красного цвета, идет от правого угла к левому, занимает в высоту 1/4 окна приложения.
- «боковая полоса» — полоса голубого цвета находящаяся в левой стороне экрана, в высоту занимает место между «шапкой приложения» и нижней границей окна приложения. в ширину 1/4 от окна приложения.
- «основной фон» все оставшееся место занимает белый фон.
- «Заголовок» — Текстовый блок, располагающийся в левом верхнем углу. Размер текста:блок на пересечении «шапки приложения» и «боковой полосы».
- «кнопки главных разделов» — 2 кнопки располагающиеся на «шапке приложения», расположены по всей длине «шапке приложения». При нажатие по кнопке «1 раздел» или «2 раздел», меняются кнопки на «боковой полосе» в зависимости от выбора.
- «кнопки боковой полосы (при выборе «1 раздел»)» — при нажатии на кнопку «1 раздел» в » боковой полосе» менялись кнопки на «1 текст», «2 текст», «3 текст».
- «кнопки боковой полосы(при выборе «2 раздел») — при нажатии на кнопку «2 раздел» в «боковой полосе» менялись кнопки на «4 текст», «5 текст», «6 текст».
- «1 текст (и остальные так же)» — просто длинный текст в блоке «основной фон»
Это пример приложения-сайта.
Р.Сузи. Спецкурс «Язык Python и его приложения»
Лекция 10. Создание приложений с графическим интерфейсом
Для Python существует множество библиотек для создания графического интерфейса пользователя (GUI). Здесь будет рассмотрена только одна — Tkinter. Это привязка Python к Tcl/Tk. Она поставляется вместе с Python. Для построения графических интерфейсов частенько используют построители (Builders), но мы рассмотрим «ручной» вариант GUI-программирования: он поможет лучше уяснить принципы работы графических приложений.
Почти все современные графические интерфейсы общего назначения строятся по модели WIMP — Window, Icon, Menu, Pointer (окно, иконка, меню, курсор [обычно мыши]). Внутри окон рисуются элементы графического интерфейса, именуемые «виджетами» (widget — штучка).
Вот лишь некоторые виджеты из Tcl/Tk:
Toplevel Окно верхнего уровня (корневой виджет) Button Кнопка. Простая кнопка для выполнения команды и других действий Canvas Рисунок. Может использоваться для вывода графических примитивов, например, для построения графиков Checkbutton Флажок. Кнопка, имеющая два состояния, при нажатии изменяет состояние на противоположное Entry Поле ввода текста Frame Рамка. Содержит в себе другие визуальные компоненты Label Этикетка. Показывает некоторый текст или графическое изображение Listbox Список. Показывает список, из которых пользователь может выделить один или несколько элементов Menu Меню. Служит для организации всплывающих (popup) и ниспадающих (pulldown) меню Menubutton Кнопка-меню. Используется для организации pulldown-меню Message Сообщение. Аналогично Label , но позволяет заворачивать длинные строки и легко меняет свой размер Radiobutton Переключатель. Представляет одно из альтернативных значений некоторой переменной. Обычно действует в группе. При нажатии на одну из кнопок, все остальные кнопки автоматически «отскакивают», совсем как кнопки выбора волны на радиоприемнике Scale Шкала. Позволяет задать числовое значение путем перемещения движка Scrollbar Полоса прокрутки. Может использоваться вместе с некоторыми другими компонентами для их прокрутки Text Форматированный текст. Позволяет показывать, редактировать и форматировать текст с использованием различных стилей, а также внедрять в текст рисунки и окна.
Примеры виджетов (порождены этой программой)

Рассмотрим подробнее следующую программу:
from Tkinter import * import math def Square(radius): return math.pi * radius**2 def calculate_square(): radius = float(radius_entry.get()) try: square = "%11.3f" % Square(radius) except: square = "?" square_label.configure(text=square) root = Tk() root.title("Площадь круга") frame = Frame(root) frame.pack() radius_entry = Entry(frame, width=10) radius_entry.grid(row=0, column=0) square_label = Label(frame, text="?") square_label.grid(row=0, column=1) eval_button = Button(frame, text="Calculate", width=10, command=calculate_square) eval_button.grid(row=1, column=0) exit_button = Button(frame, text="Exit", width=10, command=root.destroy) exit_button.grid(row=1, column=1) root.mainloop()
Результаты работы этой программы:


Заметьте в примере выше способ вызова функции для обработки собятия нажатие на кнопку: он задается именованным аргументом command . Аналогично кнопка exit_button выполняет закрытие окна (и всего приложения), так как ей задан метод destroy объекта root .
Окно графического приложения состоит из вложенных друг в друга виджетов. Для примера выше дерево виджетов выглядит так:

Расположением виджетов управляют менеджеры расположения. В Tkinter их три разновидности:
pack «Упаковывает» виджеты друг к другу так, чтобы они «тяготели» к определенным краям. Самый простой из менеджеров расположения, но достаточен для многих задач. grid Располагает виджеты в ячейках прямоугольной сетки (почти как в электронной таблице). place Располагает подчиненные виджеты относительно виджета-хозяина, в абсолютных или относительных координатах.
В основном GUI-приложения состоят из двух фаз: (I) фазы генерации интерфейса и (II) фазы цикла обработки событий. На фазе генерации интерфейса каждый виджет создается (при этом возможно задание некоторых аргументов); прикрепляется одним из указанных трех методов к своему хозяину. Виджеты появляются на экране только в результате прикрепления к уже прикрепленным виджетам. Для запуска фазы II используется метод mainloop() Toplevel-виджета. На второй фазе изменение свойств виджетов производится с помощью метода configure().
Каждый виджет может обрабатывать возникающие в нем события: движения курсора мыши, ввод с клавиатуры и т.п. Основные события в Tkinter:
KeyPress нажатие клавиши на клавиатуре KeyRelease отпускание клавиши на клавиатуре ButtonPress нажатие кнопки мыши ButtonRelease отпускание кнопки мыши Motion движение мыши (в рамках компетенции виджета) Enter вхождение курсора в пределы виджета Leave выход курсора за пределы виджета MouseWheel кручение колесика мыши Visibility изменение видимости окна FocusIn окно получает фокус FocusOut окно теряет фокус Reparent изменение родителя окна Destroy уничтожение окна Activate окно становится активным Deactivate окно становится неактивным
Описание события задается строкой (часть элементов может быть опущена):
- «» или «» — нажатие правой кнопки мыши
- «» — двойной щелчок левой кнопки мыши
- «» — двойной щелчок левой кнопки мыши при нажатой клавише Shift
- «» — нажатие клавиши Пробел
- «k» — нажатие клавиши с символом «k»
from Tkinter import * tk = Tk() txt = Text(tk) txt.pack() def give_info(event): # event.widget - виджет, в котором произошло событие txt.delete("1.0", END) items = event.__dict__.items() items.sort() for k, v in items: txt.insert(END, "%s: %s\n" % (k, v)) txt.bind("", give_info) tk.mainloop()

Конечно, кажды виджет имеет большое количество всевозможных параметров, которые можно задавать и затем изменять. (Например, так мы изменяли текст в этикетке:
Напоследок важное замечание: не гонитесь за использованием как можно большего числа различных штучек, так как удобство интерфейса зависит не от этого.
Как создать программу на python с интерфейсом
Шаги базируются на книге:
Прохоренок Н.А., Дронов В.А. Python 3. Самое необходимое — СПб.: БХВ-Петербург, 2016. — 464 с.
На этом шаге мы приведем общие сведения об этом языке программирования .
Python — это интерпретируемый, объектно-ориентированный язык программирования высокого уровня, предназначенный для решения самого широкого круга задач. С его помощью можно обрабатывать числовую и текстовую информацию, создавать изображения, работать с базами данных, разрабатывать Web -сайты и приложения с графическим интерфейсом. Python — язык кроссплатформенный, он позволяет создавать программы, которые будут работать во всех операционных системах.
Согласно официальной версии, название языка произошло вовсе не от змеи. Создатель языка Гвидо ван Россум (Guido van Rossum) назвал свое творение в честь британского комедийного телешоу ВВС (Monty Python’s Flying Circus) . Поэтому правильное произношение названия этого замечательного языка — Пайтон .
Программа на языке Python представляет собой обычный текстовый файл с расширением py (консольная программа) или pyw (программа с графическим интерфейсом). Все инструкции из этого файла выполняются интерпретатором построчно. Для ускорения работы при первом импорте модуля создается промежуточный байт-код, который сохраняется в одноименном файле с расширением pyc . При последующих запусках, если модуль не был изменен, исполняется именно байт-код. Для выполнения низкоуровневых операций и задач, требующих высокой скорости работы, можно написать модуль на языке С или C++ , скомпилировать его, а затем подключить к основной программе.
Python относится к категории языков объектно-ориентированных. Это означает, что практически все данные в нем являются объектами, даже значения, относящиеся к элементарным типам, наподобие чисел и строк, а также сами типы данных. В переменной всегда сохраняется только ссылка на объект, а не сам объект. Например, можно создать функцию, сохранить ссылку на нее в переменной, а затем вызвать функцию через эту переменную. Такое обстоятельство делает язык Python идеальным инструментом для создания программ, использующих функции обратного вызова, — например, при разработке графического интерфейса. Тот факт, что язык является объектно-ориентированным, отнюдь не означает, что и объектно-ориентированный стиль программирования (ООП) является при его использовании обязательным. На языке Python можно писать программы как в стиле ООП, так и в процедурном стиле, — как того требует конкретная ситуация или как предпочитает программист.
Python не допускает двоякого написания кода: код можно написать только одним способом; в нем отсутствуют лишние конструкции. Все программисты должны придерживаться стандарта РЕР-8 , описанного в документе https://www.python.org/dev/peps/pep-0008/ .
Синтаксис языка Python вызывает много нареканий у программистов, знакомых с другими языками программирования. На первый взгляд может показаться, что отсутствие ограничительных символов (фигурных скобок или конструкции begin. end ) для выделения блоков и обязательная вставка пробелов впереди инструкций могут приводить к ошибкам. Однако это только первое и неправильное впечатление. Хороший стиль программирования в любом языке обязывает выделять инструкции внутри блока одинаковым количеством пробелов. В этой ситуации ограничительные символы просто ни к чему. Бытует мнение, что программа будет по-разному смотреться в разных редакторах. Это неверно. Согласно стандарту, для выделения блоков необходимо использовать четыре пробела. А четыре пробела в любом редакторе будут смотреться одинаково. Если количество пробелов внутри блока окажется разным, то интерпретатор выведет сообщение о фатальной ошибке, и программа будет остановлена.
Поскольку программа на языке Python представляет собой обычный текстовый файл, его можно редактировать с помощью любого текстового редактора — например, с помощью Notepad++ . Однако лучше воспользоваться специализированными редакторами, которые не только подсвечивают код, но также выводят различные подсказки и позволяют выполнять отладку программы. Таких редакторов очень много: PyScripter , PythonWin , UliPad , Eclipse с установленным модулем PyDev , Netbeans и др. — полный список редакторов можно найти на странице http://wiki.python.org/moin/PythonEditors . В дальнейшем, если не оговоено особо, будем пользоваться интерактивным интерпретатором IDLE , который входит в состав стандартной библиотеки Python в Windows .
На следующем шаге мы рассмотрим первую программу на языке программирования Python .
TKinterDesigner — Графический интерфейс на Python
Среда быстрой разработки Python с разработкой графического интерфейса с перетаскиванием на визуальную форму. Дизайнер форм, редактор кода, отладка и упаковка.
- Главная
- IDE
- TKinterDesigner — Графический интерфейс на Python

19 июня 2022 г. 17:51 Английский Apache License 2.0
Свободная среда быстрой разработки, позволяющая создавать графический интерфейс на Python при помощи перетаскивания компонентов. Используется для разработки проекта приложения на Python с интерфейсом Tkinter. Включает дизайнер форм, редактор кода, отладку и упаковку.
По заявлению разработчика, самая большая разница между TKinterDesigner и другими типами инструментов разработки заключается в том, что он обеспечивает полный набор процессов разработки.
TkinderDesigner представляет собой решение для разработки прикладного программного обеспечения на Python, включающее в себя общий процесс разработки от создания проекта до дизайна интерфейса, редактирования, отладки логики событий, упаковки и выпуска, а также созданную на этой основе ресурсную платформу и экосистему разработчиков.
Процесс разработки графического интерфейса для Python
- Создание проекта.
- Создание формы.
- Размещение элементов управления, редактирование свойств.
- Связывание событий.
- Написание логики кода.
- Отладка и запуск.
- Упаковка и выпуск релиза.
Основные функции:
- управление проектами: создание и открытие проектов;
- управление файлами: создание интерфейса, создание файлов и импорт ресурсов проекта;
- дизайн интерфейса: создание интерфейса на Tkinter, перетаскивая компоненты на визуальную форму;
- настройка элемента управления: настройка основных свойств элемента управления;
- привязка переменных: привязка пользовательских переменных к элементам управления Tkinter;
- реакция на событие: сопоставление между событиями и функциями для управления Tkinter;
- написание кода: написание логики кода для функций;
- отладка и запуск: вызов команды Python для отладки и запуска проекта;
- упаковка программы: вызов команды Python для упаковки в exe проекта;
- компонентизация и импорт пользовательских модулей: прямое сохранение текущих функций интерфейса в виде компонентов и их гибкий вызов или импорт и вызов пользовательских модулей.
Запуск Tkinterdesigner
Дважды щелкните программу TKinterDesigner. На появившейся странице можно выбрать язык в правом верхнем углу. Если текущая версия не является последней версией — можно увидеть подсказку о последней версии.
По умолчанию вход отключен. Если нужно использовать функции членства и экспорта, можно щелкнуть значок Guest, чтобы войти в систему.
Tkinterdesigner регистрация и вход
Щелкните значок Guest, и увидите интерфейс входа в систему.
Ввести логин учетной записи и пароль. Если учетной записи нет, можно зарегистрироваться. Войдите в интерфейс регистрации и заполните поля. После успешной регистрации автоматически будет выполнен вход. Если не хотите регистрироваться, можно использовать в автономном режиме.
После успешного входа в систему попадете на страницу управления проектом, где будет отображаться имя для входа, и у авторизованного пользователя будет больше прав.
Об украшении графического интерфейса на Пайтон
В большинстве случаев программа, для создания которой используется Tkinter, недостаточно красива. Хотя это не влияет на развитие функций, любовь к красоте есть у всех. Будет лучше, если получится сделать программу более красивой.
Однако, поскольку большинство наших разработчиков и пользователей являются программистами, лучше упростить часть украшения. Поэтому разработчик Tkinterdesigner надеется предоставить хорошую цветовую схему в качестве скина для разработчиков, чтобы сделать программу более красивой. Также запустил магазин компонентов. Пользователь должен зарегистрировать учетную запись, чтобы увидеть магазин компонентов.
Характеристики
Ссылки на официальный сайт и загрузку
- Веб-сайт:github.com/honghaier-game/TKinterDesigner
- Каталог загрузки
- Прямая ссылка
- Прямая ссылка x64
- Резервная копия