Как написать программу с интерфейсом на python

Многие программы на сегодняшний день используют графический интерфейс, который более интуитивен и удобен для пользователя, чем консоль. И с помощью языка программирования Python также можно создавать графические программы. Для этого в Python по умолчанию применяется специальный toolkit — набор компонентов, который называется tkinter .

Библиотека tkinter доступна в виде отдельного встроенного модуля, который содержит все необходимые графические компоненты — кнопки, текстовые поля и т.п.

Базовым моментом в построении графических программ является создание окна. Затем в окно добавляются все остальные компоненты графического интерфейса. Поэтому создадим вначале простейшее окно. Для этого определим следующий скрипт:

from tkinter import * root = Tk() »’ any code »’ root.mainloop()
1
2
3
4
5
6
7

Для создания графического окна применяется конструктор Tk() , который определен в модуле tkinter . Создаваемое окно присваивается переменной root , и через эту переменную мы можем управлять атрибутами окна. Вместо комментария »’any code»’ добавляются все необходимые компоненты окна.

Простой GUI калькулятор на Python #1. Дизайн приложения

Для отображения окна надо вызвать у него метод mainloop() , который запускает цикл обработки событий окна для взаимодействия с пользователем.

В результате при запуске скрипта мы увидим такое пустое окошко:

C помощью метода title() можно установить заголовок окна.

С помощью метода geometry() — размер окна. Для установки размера в метод geometry() передается строка в формате «Ширина x Высота». Если при создании окна приложения метод geometry() не вызывается, то окно занимает то пространство, которое необходимо для размещения внутреннего содержимого:

from tkinter import * root = Tk() root.title(‘My first window title’) root.geometry(‘350×200’) root.mainloop()
1
2
3
4
5
6

# Начальная позиция окна

По умолчанию окно позиционируется в верхний левый угол экрана. Но мы можем изменить его положение, передав нужные значения в метод geometry() :

from tkinter import * root = Tk() root.title(«My second Python window») root.geometry(«400×300+300+250») root.mainloop()
1
2
3
4
5
6

Теперь строка в методе geometry имеет следующий формат: «Ширина x Высота + координатаX + координатаY». То есть при запуске окно будет находиться на 300 пикселей вправо и на 250 пикселей вниз от верхнего левого угла экрана.

# Упражнения

  1. Создайте 4 окна с заголовками окон: «Top», «Bottom», «Right», «Left». Разместить окна по сторонам рабочего стола:
    • вверх по центру,
    • низ по центру,
    • право по центру,
    • лево по центру.
    • Создайте 4 окна с заголовками окон: «Top-right», «Top-left», «Bottom-right», «Bottom-left». Разместить 4 окна по углам рабочего стола.
    • Создайте окно, появляющееся в центре экрана, с заголовком «Center».
    • Текстовые и другие редакторы в заголовках программы указывают имя «активного файла — название программы».
      • Создайте окно с заголовком в виде f-строки, в котором указывается имя разработчика, название и версия программы;
      • Имя и версия программы хранятся в отдельных переменных;
      • Пример вывода заголовка: «Bob’s programm — Empty v.01»
      • Иконки окон не отображаются в системах MacOS, задача только для Windows: Найдите в интернете, как в tkinter сменить иконку, отображаемую в левом верхнем углу окна. И замените её, на любую другую иконку, которую можно скопировать из интернета или создать самому. Картинка для иконки обязательно должна иметь расширение .ico .
      Читайте также:
      Бош wmv 1600 инструкция программы стиральная

      Источник: learn4kid-python.firebaseapp.com

      ТОП 5 Лучших графических (GUI) фреймворков Python / Графический интерфейс python

      Python Pyqt5 — создайте простой графический интерфейс без усилий!

      PyQt — это пакет Python для работы с кроссплатформенным графическим интерфейсом Qt.

      По сути, вы можете писать код где угодно, и он будет работать на каждой ОС любого пользователя.

      Я не программист с графическим интерфейсом пользователя, я не планирую им быть, и если вы планируете им стать, я бы не рекомендовал python в качестве основного языка, но! если вам нужно что-то «быстрое и грязное», для решения в команде или просто удобство графического интерфейса вместо терминала, этот модуль идеально подходит!

      В конце этой статьи у вас будет графический интерфейс, который выбирает файл для работы!

      Конструктор

      Pyqt поставляется с дизайнером графического интерфейса пользователя, который значительно упрощает работу, экономя вам много времени по сравнению с Tkinter или другими языками графического интерфейса на python.

      Вид конструктора<br></p><p>

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

      Слева вы можете добавить объекты ввода, переменные и т.д.

      После сохранения проекта вы получите файл .ui, который можно просто преобразовать в скрипт Python с помощью следующей команды:

      python -m PyQt5.uic.pyuic -x [FILENAME].ui -o [FILENAME].py

      Теперь мы создали файл python, который запускает пользовательский интерфейс!

      Не трогай это!

      Изменение нашего нового файла python является серьезной ошибкой, поскольку, если мы когда-либо захотим отредактировать наш графический интерфейс, мы запустим наши изменения, правильный способ — создать наш собственный класс, унаследованный от нашего графического интерфейса.

      Просто скопируйте импорт и создайте новый класс, он будет выглядеть примерно так:

      from file_choosing import Ui_Dialog from PyQt5 import QtCore, QtGui, QtWidgets # our class class MainWindow(Ui_Dialog): def __init__(self): super(MainWindow).__init__() def setupUi(self, Dialog): super(MainWindow, self).setupUi(Dialog) # Todo: add our own functions # running GUI instance if __name__ == «__main__»: import sys app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = MainWindow() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_())

      Как же нам внести нужные изменения?

      Нам нужно изменить важную функцию, setupUI.

      Эта функция создает пользовательский интерфейс, и что нам нужно сделать, так это «подключить» наши рабочие функции к нашим кнопкам.

      И это будет выглядеть так:

      def setupUi(self, Dialog): super(MainWindow, self).setupUi(Dialog) # adding functions to buttons from here self.toolButton.clicked.connect(self._create_window) self.pushButton.clicked.connect(self._clicked_push_button)

      Ваш Код вступает в игру

      До сих пор у нас был обработанный графический интерфейс, но без каких-либо функций, в основном, функции подключения, позволяющие нам добавлять наш код в графический интерфейс, чтобы все происходило.
      Как только мы подключим функции к кнопке, каждый щелчок будет запускать нашу функцию.

      Примечание — это однопоточная программа, если ваш код работает в основном потоке, и это долгая операция, это приведет к тому, что графический интерфейс перестанет отвечать.

      Функциональность

      Чтобы сэкономить вам время на поиск в Интернете, вот несколько ключевых функций.

      # setting text on a text box / line [object].setText(file) # reading text of text box / line [object].text() # adding functonality to button [object].clicked.connect([your function])

      Читайте также:
      Установить программу скайп ком

      И, наконец, как и было обещано, я опубликую здесь полный код выбора файла, я использовал документацию Pyqt5, и это здорово, и если вы хотите, чтобы ваш графический интерфейс выглядел и работал лучше, я рекомендую вам немного почитать.

      Основной код

      from file_choosing import Ui_Dialog from PyQt5 import QtCore, QtGui, QtWidgets class MainWindow(Ui_Dialog): def __init__(self): super(MainWindow).__init__() self.title = ‘Choose file’ self.left = 10 self.top = 10 self.width = 640 self.height = 480 def setupUi(self, Dialog): super(MainWindow, self).setupUi(Dialog) # adding functions to buttons from here self.toolButton.clicked.connect(self._create_window) self.pushButton.clicked.connect(self._clicked_push_button) # def _create_window(self): self._shared_memory = <> self.ex = App(self._shared_memory) self._clicked_tool_button() def _clicked_tool_button(self): file = self._shared_memory.get(‘filename’) if file is not None: self.lineEdit.setText(file) def _clicked_push_button(self): # Todo: your script if self.lineEdit.text() != »: print(‘now your script should do something’) self.textBrowser.setText(f’my scripts just did something with file: ‘) pass else: print(‘now your script should do something’) self.textBrowser.setText(f’choose file, or my script wont do a thing’) # choosing file window class App(QtWidgets.QWidget): def __init__(self, shared): super().__init__() self.title = ‘PyQt5 file dialogs — pythonspot.com’ self.left = 10 self.top = 10 self.width = 640 self.height = 480 self.shared = shared self.initUI() def initUI(self): self.setWindowTitle(self.title) self.setGeometry(self.left, self.top, self.width, self.height) self.openFileNameDialog() def openFileNameDialog(self): options = QtWidgets.QFileDialog.Options() options |= QtWidgets.QFileDialog.DontUseNativeDialog fileName, _ = QtWidgets.QFileDialog.getOpenFileName(self, «QFileDialog.getOpenFileName()», «», «All Files (*);;Python Files (*.py)», options=options) if fileName: self.shared[‘filename’] = fileName return fileName if __name__ == «__main__»: import sys app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = MainWindow() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_())

      Код пользовательского интерфейса

      # -*- coding: utf-8 -*- # Form implementation generated from reading ui file ‘file_choosing.ui’ # # Created by: PyQt5 UI code generator 5.14.2 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName(«Dialog») Dialog.resize(677, 341) self.pushButton = QtWidgets.QPushButton(Dialog) self.pushButton.setGeometry(QtCore.QRect(530, 210, 101, 21)) self.pushButton.setObjectName(«pushButton») self.lineEdit = QtWidgets.QLineEdit(Dialog) self.lineEdit.setGeometry(QtCore.QRect(90, 32, 441, 31)) self.lineEdit.setObjectName(«lineEdit») self.label = QtWidgets.QLabel(Dialog) self.label.setGeometry(QtCore.QRect(40, 40, 31, 16)) self.label.setObjectName(«label») self.toolButton = QtWidgets.QToolButton(Dialog) self.toolButton.setGeometry(QtCore.QRect(540, 30, 81, 31)) self.toolButton.setObjectName(«toolButton») self.textBrowser = QtWidgets.QTextBrowser(Dialog) self.textBrowser.setGeometry(QtCore.QRect(40, 110, 391, 192)) self.textBrowser.setObjectName(«textBrowser») self.label_2 = QtWidgets.QLabel(Dialog) self.label_2.setGeometry(QtCore.QRect(220, 80, 59, 15)) self.label_2.setObjectName(«label_2») self.retranslateUi(Dialog) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate(«Dialog», «Main»)) self.pushButton.setText(_translate(«Dialog», «OK»)) self.label.setText(_translate(«Dialog», «File»)) self.toolButton.setText(_translate(«Dialog», «Choose File»)) self.label_2.setText(_translate(«Dialog», «results»)) if __name__ == «__main__»: import sys app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_())

      Я использовал имена по умолчанию для простоты, поэтому воссоздать пользовательский интерфейс просто: одно поле для нажатия, одно поле для инструментов, одно текстовое поле и одно строковое поле.

      Мысли

      Этому приятно научиться, даже если вы будете делать это не часто, поэтому я призываю вас попробовать!

      Иногда вы можете найти это полезным, я обычно использую это при компиляции кода Python, даже если он не такой эффективный или распространенный, иногда предоставление товарищу по команде EXE-файла с простым графическим интерфейсом может заставить его использовать небольшой инструмент, который вы создали, которые он бы не использовал, так как необходимо поддерживать окружающую среду.

      Источник: dev-gang.ru

      TKinterDesigner — Графический интерфейс на Python

      Среда быстрой разработки Python с разработкой графического интерфейса с перетаскиванием на визуальную форму. Дизайнер форм, редактор кода, отладка и упаковка.

      1. Главная
      2. IDE
      3. TKinterDesigner — Графический интерфейс на Python
      Читайте также:
      Как связать программу с базой данных

      Разработка графического интерфейса на Python

      19 июня 2022 г. 17:51 Английский Apache License 2.0

      Свободная среда быстрой разработки, позволяющая создавать графический интерфейс на Python при помощи перетаскивания компонентов. Используется для разработки проекта приложения на Python с интерфейсом Tkinter. Включает дизайнер форм, редактор кода, отладку и упаковку.

      По заявлению разработчика, самая большая разница между TKinterDesigner и другими типами инструментов разработки заключается в том, что он обеспечивает полный набор процессов разработки.

      TkinderDesigner представляет собой решение для разработки прикладного программного обеспечения на Python, включающее в себя общий процесс разработки от создания проекта до дизайна интерфейса, редактирования, отладки логики событий, упаковки и выпуска, а также созданную на этой основе ресурсную платформу и экосистему разработчиков.

      Процесс разработки графического интерфейса для Python

      1. Создание проекта.
      2. Создание формы.
      3. Размещение элементов управления, редактирование свойств.
      4. Связывание событий.
      5. Написание логики кода.
      6. Отладка и запуск.
      7. Упаковка и выпуск релиза.

      Основные функции:

      • управление проектами: создание и открытие проектов;
      • управление файлами: создание интерфейса, создание файлов и импорт ресурсов проекта;
      • дизайн интерфейса: создание интерфейса на Tkinter, перетаскивая компоненты на визуальную форму;
      • настройка элемента управления: настройка основных свойств элемента управления;
      • привязка переменных: привязка пользовательских переменных к элементам управления Tkinter;
      • реакция на событие: сопоставление между событиями и функциями для управления Tkinter;
      • написание кода: написание логики кода для функций;
      • отладка и запуск: вызов команды Python для отладки и запуска проекта;
      • упаковка программы: вызов команды Python для упаковки в exe проекта;
      • компонентизация и импорт пользовательских модулей: прямое сохранение текущих функций интерфейса в виде компонентов и их гибкий вызов или импорт и вызов пользовательских модулей.

      Запуск Tkinterdesigner

      Дважды щелкните программу TKinterDesigner. На появившейся странице можно выбрать язык в правом верхнем углу. Если текущая версия не является последней версией — можно увидеть подсказку о последней версии.

      По умолчанию вход отключен. Если нужно использовать функции членства и экспорта, можно щелкнуть значок Guest, чтобы войти в систему.

      Tkinterdesigner регистрация и вход

      Щелкните значок Guest, и увидите интерфейс входа в систему.

      Ввести логин учетной записи и пароль. Если учетной записи нет, можно зарегистрироваться. Войдите в интерфейс регистрации и заполните поля. После успешной регистрации автоматически будет выполнен вход. Если не хотите регистрироваться, можно использовать в автономном режиме.

      После успешного входа в систему попадете на страницу управления проектом, где будет отображаться имя для входа, и у авторизованного пользователя будет больше прав.

      Об украшении графического интерфейса на Пайтон

      В большинстве случаев программа, для создания которой используется Tkinter, недостаточно красива. Хотя это не влияет на развитие функций, любовь к красоте есть у всех. Будет лучше, если получится сделать программу более красивой.

      Однако, поскольку большинство наших разработчиков и пользователей являются программистами, лучше упростить часть украшения. Поэтому разработчик Tkinterdesigner надеется предоставить хорошую цветовую схему в качестве скина для разработчиков, чтобы сделать программу более красивой. Также запустил магазин компонентов. Пользователь должен зарегистрировать учетную запись, чтобы увидеть магазин компонентов.

      Характеристики

      Ссылки на официальный сайт и загрузку

      • Веб-сайт:github.com/honghaier-game/TKinterDesigner
      • Каталог загрузки
      • Прямая ссылка
      • Прямая ссылка x64
      • Резервная копия

      Источник: xn--90abhbolvbbfgb9aje4m.xn--p1ai

      Рейтинг
      ( Пока оценок нет )
      Загрузка ...
      EFT-Soft.ru