Как написать программу на python для Windows

Содержание
Читайте также:
Как остановить установку программы на компьютер Windows

В этой статье разберем самое начало изучения программирования на языке Python и посмотрим как вывести сообщение Hello World на экран монитора.

Простота написания кода, активное продвижение и распространение языка программирования Python сделали его одним из самых популярных во всём Мире.

Видеоролик по истории возникновения языка программирования Python , можно посмотреть по ссылке, а сейчас лишь кратко напомню что прототипом языка Python был учебный язык программирования ABC, за счет этой особенности, разработанный язык получился прост в понимании и был рекомендован для начала обучения программированию в образовательных учреждениях.

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

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

Урок Python для новичков, пишем 2 легкие программы

Сайт python.org

Установка интегрированной среды программирования IDLE

Первое что нам понадобится — это установить среду программирования c сайта python.org.

Источник: dzen.ru

Собираем проект на python3Как собрать проект c pyqt5″, «Почему не работает», «Какой инструмент выбрать» и т.д. Сегодня научимся собирать проекты без мучений и танцев с бубном.

Как-то пришлось написать небольшое desktop-приложение. В качестве языка программирования для разработки был выбран python, поскольку для решения моей задачи он подходил идеально. В стандартную библиотеку Python уже входит библиотека tkinter, позволяющая создавать GUI.

Но проблема tkinter в том, что данной библиотеке посвящено мало внимания, и найти в интернете курс, книгу или FAQ по ней довольно-таки сложно. Поэтому было решено использовать более мощную, современную и функциональную библиотеку Qt, которая имеет привязки к языку программирования python в виде библиотеки PyQT5. Более подробно про PyQT можете почитать здесь. В качестве примера я буду использовать код:

#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QIcon class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 220) self.setWindowTitle(‘Icon’) self.setWindowIcon(QIcon(‘web.png’)) self.show() if __name__ == ‘__main__’: app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())

Если вы более-менее опытный разработчик, то понимаете, что без интерпретатора код на python не запустить. А хотелось бы дать возможность каждому пользователю использовать программу. Вот здесь к нам на помощь и приходят специальные библиотеки позволяющие собирать проекты в .exe, которые можно потом без проблем запустить, как обычное приложение.

Как написать свою программу на python? #python #программирование

Существует большое количество библиотек, позволяющих это сделать, среди которых самые популярные: cx_Freeze, py2exe, nuitka, PyInstaller и др. Про каждую написано довольно много. Но надо сказать, что многие из этих решений позволяют запускать код только на компьютере, с предустановленным интерпретатором и pyqt5.

Не думаю, что пользователь будет заморачиваться и ставить себе дополнительные пакеты и программы. Надеюсь, вы понимаете, что запуск программы на dev-среде и у пользователя это не одно и тоже. Также нужно отметить, что у каждого решения были свои проблемы: один не запускался, другой собирал то, что не смог потом запустить, третий вообще отказывался что-либо делать.

После долгих танцев с бубном и активным гуглением, мне все же удалось собрать проект с помощью pyinstaller, в полностью работоспособное приложение.

Немного о Pyinstaller

Pyinstaller собирает python-приложение и все зависимости в один пакет. Пользователь может запускать приложение без установки интерпретатора python или каких-либо модулей. Pyinstaller поддерживает python 2.7 и python 3.3+ и такие библиотеки как: numpy, PyQt, Django, wxPython и другие.

Pyinstaller тестировался на Windows, Mac OS X и Linux. Как бы там ни было, это не кросс-платформенный компилятор: чтобы сделать приложение под Windows, делай это на Windows; Чтобы сделать приложение под Linux, делай это на Linux и т.д.

PyInstaller успешно используется с AIX, Solaris и FreeBSD, но тестирование не проводилось.

Подробнее о PyInstaller можно почитать здесь: документация.

К тому же после сборки приложение весило всего около 15 мб. Это к слову и является преимуществом pyinstaller, поскольку он не собирает все подряд, а только необходимое. Аналогичные же библиотеки выдавали результат за 200-300 мб.

Приступаем к сборке

Прежде чем приступить к сборке мы должны установить необходимые библиотеки, а именно pywin32 и собственно pyinstaller:

pip install pypiwin32 pip install pyinstaller

Чтобы убедится, что все нормально установилось, вводим команду:

pyinstaller —version

должна высветиться версия pyinstaller. Если все правильно установилось, идем дальше.

В папке с проектом запускаем cmd и набираем:

pyinstaller myscript.py

Собственно это и есть простейшая команда, которая соберет наш проект.
Синтаксис команды pyinstaller таков:

pyinstaller [options] script [script . ] | specfile

Наиболее часто используемые опции:

—onefile — сборка в один файл, т.е. файлы .dll не пишутся.
—windowed -при запуске приложения, будет появляться консоль.
—noconsole — при запуске приложения, консоль появляться не будет.
—icon=app.ico — добавляем иконку в окно.
—paths — возможность вручную прописать путь к необходимым файлам, если pyinstaller
не может их найти(например: —paths D:python35Libsite-packagesPyQt5Qtbin)

PyInstaller анализирует файл myscript.py и делает следующее:

  1. Пишет файл myscript.spec в той же папке, где находится скрипт.
  2. Создает папку build в той же папке, где находится скрипт.
  3. Записывает некоторые логи и рабочие файлы в папку build.
  4. Создает папку dist в той же папке, где находится скрипт.
  5. Пишет исполняемый файл в папку dist.

В итоге наша команда будет выглядеть так:

pyinstaller —onefile —icon=name.ico —noconsole myscript.py

После работы программы вы найдете две папки: dist и build. Собственно в папке dist и находится наше приложение. Впоследствии папку build можно спокойно удалить, она не влияет на работоспособность приложения.

Спасибо за внимание. Надеюсь статья была вам полезна.

Источник: habr.com

Python PyQt5: современные графические интерфейсы для Windows, MacOS и Linux

Python PyQt5: современные графические интерфейсы для Windows, MacOS и Linux

Python регулярно включают в разнообразные рейтинги лучших языков программирования благодаря большому сообществу и легко читаемому синтаксису. Более того, Python под силу создать современный графический пользовательский интерфейс — GUI — для обычных скриптов. В руководстве уделим внимание модулю для разработки GUI PyQt5 , но стоит также упомянуть аналоги: Tkinter и WxWidget .

Skillfactory.ru

Статья подойдет в том числе и начинающим программистам, поэтому, не теряя времени, приступаем!

Содержание руководства:

1. Установка и настройка PyQt5

Скачайте и установите последнюю версию Python для вашей системы, а если Python уже на месте, то установите пакеты при помощи следующей команды (откройте командную строку, введите и нажмите Enter):

pip install pyqt5

2. Основы PyQt5

Теперь на вашем компьютере сохранен пакет PyQt5 , поэтому давайте начнем с написания первого окна графического интерфейса. Откройте ваш любимый текстовый редактор или IDE и выполните приведенный ниже код:

# Построение Windows GUI import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(400,400,400,300) win.setWindowTitle(«Pyqt5 Tutorial») win.show() sys.exit(app.exec_()) main()

Результат выполнения программы:

Теперь разберем код окна интерфейса с заголовком сверху. Если обсуждать кратко, то в первую очередь импортируем PyQt5 и его классы, полезные в создании виджета GUI, а затем создаем функцию main() для реализации оконного интерфейса.

  • QMainWindow() — словно контейнер, содержащий все виджеты, такие как кнопки, текст, поле ввода и т. д.
  • SetGeometry() — один из методов QMainWindow() , устанавливает размер окна. Синтаксис: setGeometry(x, y, длина, ширина) .
  • SetWindowTitle() — устанавливает заголовок окна.
  • Win.show() — создает и отображает весь разработанный интерфейс.
  • Sys.exit(app.exec_()) — устанавливает, что конкретное окно не закроется без нажатия на кнопку с крестиком. Без этой строчки кода GUI-программа завершится через секунду после выполнения.

Label Text — это текст, отображаемый внутри окна. С написанием Label Text в PyQt5 вам поможет виджет Qlabel .

Выполните следующий код:

import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(400,400,400,300) win.setWindowTitle(«Pyqt5 Tutorial») #Label Text label= QLabel(win) label.setText(«Hi this is Pyqt5») label.move(100,100) win.show() sys.exit(app.exec_()) main()

Результат выполнения программы:

Если кратко, то вызываем метод Qlabel() и передаем в него переменную QMainWindow .

  • Метод SetText() устанавливает Label Text, в качестве аргумента принимает только строковые данные.
  • Метод Move(x, y) применяется для установки положения Label Text внутри окна.

4. События и кнопки

Кнопки — важная часть любого программного обеспечения, ведь именно кнопка определяет действие пользователя, а следовательно, и результат работы программы тоже. Для создания кнопок в PyQt5 придётся применить другой виджет под названием QtWidgets , выполните следующий код:

import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(400,400,400,300) win.setWindowTitle(«Pyqt5 Tutorial») #Button button = QtWidgets.QPushButton(win) button.setText(«Hi! Click Me») button.move(100,100) win.show() sys.exit(app.exec_()) main()

Результат выполнения программы:

В коде вышеизложенного примера переменная QMainWindow передается в метод из Qwidget под названием QPushbutton . Далее разберем код примера по пунктам.

  • SetText() устанавливает название для кнопки, как можно увидеть на приведенном выше изображении.
  • Move() снова применяется для установки положения кнопки в окне по координатам на осях x и y.

Теперь пришел черед событийно-ориентированного программирования (Event-Driven-Programming)! Проще говоря, нужно определить действие для кнопки, то есть, если пользователь на нее нажмет, то что-то должно произойти. Ознакомьтесь со следующим кодом, а дальше рассмотрим подробные объяснения:

import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel def click(): print(«Hy Button is clicked!») def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(400,400,400,300) win.setWindowTitle(«Pyqt5 Tutorial») #Button Click button = QtWidgets.QPushButton(win) button.setText(«Hi! Click Me») button.move(100,100) button.clicked.connect(click) win.show() sys.exit(app.exec_()) main()

Теперь в примере определяется не только главная функция по имени main() , но и функция по имени click() , передающаяся в качестве параметра для button.clicked.connect() в main() . Таким образом указывается конкретная функция, срабатывающая при нажатии на конкретную кнопку.

Запустив такой код и нажав на кнопку, вы увидите вывод на экране консоли. Дело за вами, что же написать внутри функции click() ! Протестируйте код на вашей операционной системе.

5. Поля ввода

Поля ввода также называются текстовыми полями — это области для пользовательского ввода информации. Для объявления поля ввода в PyQt5 применяется специальный виджет QlineEdit() , а в него, как обычно, передается в качестве параметра QMainWindow .

Посмотрите на следующий код и обратите внимание на его результат:

import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(400,400,400,300) win.setWindowTitle(«Pyqt5 Tutorial») #Entry Box / Text Box textbox = QtWidgets.QLineEdit(win) textbox.move(100, 100) textbox.resize(180,40) win.show() sys.exit(app.exec_()) main()

Результат выполнения программы:

  • Resize(width, height) изменяет размер виджета поля ввода.

6. Окна сообщений и всплывающие окна

Окна сообщений и всплывающие окна (popups) — это альтернативные маленькие окна, например, вы создаете программу для регистрации электронной почты, а пользователь не ввел надежный пароль, тогда вы предупреждаете пользователя об этом через окна сообщений.

Skillfactory.ru

Для создания окон сообщений в PyQt5 применяется виджет QMessageBox , он опять таки принимает QMainWindow в качестве параметра.

Проанализируйте следующий код:

import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel def main(): app = QApplication(sys.argv) win = QMainWindow() win.setGeometry(400,400,400,300) win.setWindowTitle(«Pyqt5 Tutorial») #Message Box msg = QtWidgets.QMessageBox(win) msg.setWindowTitle(«Pyqt5 Alert») msg.setText(«Message box in Pyqt5!») msg.exec_() win.show() sys.exit(app.exec_()) main()

Результат выполнения программы:

  • SetWindowTitle() устанавливает заголовок для окна сообщения.

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

msg = QtWidgets.QMessageBox(win)
msg.setWindowTitle(«Pyqt5 Alert»)
msg.setText(«Message box in Pyqt5!»)
msg.setIcon(QtWidgets.QMessageBox.Critical)
msg.exec_()

Результат выполнения программы:

Ниже приведен список допустимых для окон сообщений значков:

  • QMessageBox.Warning
  • QMessageBox.Critical
  • QMessageBox.Information
  • QMessageBox.Question

Выводы

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

  • Пусть говорят… расходящиеся гистограммы!
  • 5 способов выйти из вложенного цикла в Python
  • Осваиваем веб-скрэпинг на Python

Источник: nuancesprog.ru

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