Этот учебник ориентирован на обучение использованию инфраструктуры QT с использованием Python в качестве языка программирования, для этого мы можем использовать как PySide, так и PyQt, но в этом руководстве мы будем использовать PySide, потому что автору этого руководства больше нравится лицензия LGPL PySide. чем GPL или PyQt Commercial.
Во-первых ... Что такое Python?
Согласно Википедии:
«Python - это интерпретируемый язык программирования очень высокого уровня, философия которого делает упор на очень чистый синтаксис и способствует созданию удобочитаемого кода».
Python - это язык программирования multipadradigm, поэтому он поддерживает различные парадигмы программирования на Python, например, он поддерживает: объектно-ориентированное программирование (ООП), императивное программирование (структурированное) и, в меньшей степени, функциональное программирование.
Только это?
Нет, это также язык динамической типизации, что означает, что python позволяет нам присваивать разные типы значений одной и той же переменной во время выполнения программы, некоторые считают это преимуществом, другие - недостатком, убедитесь сами. .
В дополнение к тому, что уже было упомянуто, Python позволяет нам (как и многие другие) программировать как в веб-среде, так и на веб-рабочем столе, он также является кроссплатформенным, в настоящее время он поддерживает Gnu / Linux, Windows, Mac osx, Android. (Если вам нужно указать их для вашей модификации).
Что такое QT?
QT - это мультиплатформенный фреймворк, первоначально разработанный Nokia, который позже будет продан компании Digia, который используется для разработки приложений, написан на C ++, но может использоваться на других языках через привязки (в нашем случае PySide или PyQt)
Различия между PySide и PyQt
главным образом
- Лицензия, PySide лицензируется в соответствии с условиями LGPL, а PyQT находится в соответствии с условиями GPL или коммерческой лицензией, поэтому нам нужно будет заплатить в случае создания закрытого приложения.
- PySide создан Nokia, а PyQt - RiverBank.
- PySide избавляет нас от необходимости использовать STR каждый раз, когда мы используем QString каждого из объектов QT.
Мы можем подробно описать полные изменения Здесь.
Приготовление:
Устанавливаем Qt:
Если у нас есть дистрибутив с Kde, у нас уже должно быть то, что нам нужно, если нет:
sudo apt-get установить qt4-dev-tools
Устанавливаем PySide:
sudo apt-get install pyside pyside-tools
Наше первое приложение Python + QT
Мы переходим в наш любимый текстовый редактор, я рекомендую вам установить sublime-text2, но вы можете использовать тот, который вам больше нравится, и мы набираем следующий код и сохраняем его с желаемым именем, всегда заканчивающимся расширением «.py» , Сохраню как app1.py:
Запускаем его из консоли так:
python app1.py
Это окно должно появиться
Что? Только это, потому что если бы у вас раньше была только консоль, на что вы жалуетесь? Чего ты ожидал, Эрп? давай, человек, что-то начинается.
Теперь объясним код:
from PySide.QtGui import *
from sys import exit, argv
Здесь мы импортируем необходимые модули для выполнения PySide.
app = QApplication(argv)
Мы создаем экземпляр Qapplication с именем app.
window = Qwidget()
Создаем экземпляр QWidget ().
window.setWindowTitle("Primera App PySide")
Мы выполняем метод setWindowTitle, который получает String в качестве параметра, чтобы «установить» заголовок нашего Qwidget.
window.show()
Мы показываем наше окно
exit(app.exec_())
наконец, мы выполняем бесконечный цикл выполнения нашего QApplication ().
спасибо
Спасибо за тех, кто следил за мной здесь и был полезен. В следующем уроке я объясню, как создавать наши окна с помощью QT Designer и импортировать их в наши проекты.
Дополнительно добавляю ссылку на форум desde linux где у меня есть небольшая тема с небольшой библиотекой руководств и руководств по Python, содержащих различные термины, в том числе:
Базовые руководства по Python
wxPython
PyQt и PySide
Django
web2py
Научное программирование на питоне.
И многое другое.
Надеюсь, они служат вам, прощаюсь, как всегда приятно принадлежать к этому замечательному сообществу.
Спасибо за сообщение!
2 вещи:
1. Qt изначально разрабатывалась не Nokia, а компанией Trolltech, которую позже купила Nokia. Последний затем продал Qt компании Digia.
2. Изображение в первом примере приложения не соответствует коду.
Спасибо за туториал, буду следить за ним 🙂
Вы абсолютно правы, я это пропустил. И второе, в чем вы тоже правы, это то, что я изменил его, чтобы упростить и не использовать класс, и я пропустил модификацию, ошибки для начинающих. Я уже передал исправления, чтобы их одобрил какой-то редактор.
Я не могу изменять, оставляю это редактору.
Привет.
Напишите редактору исправленный учебник. вы можете отправить его на электронную почту @nano, который является одним из редакторов
mailto: nano.world.contact@gmail.com
пожалуйста, не оставляйте учебник вот так
привет
Меня поражает одно: почему вы используете в своем коде "from import *"?
Привет!
Это правильный способ импорта, при таком импорте вы указываете, какой конкретный класс модуля вы хотите импортировать, и не вызываете полный модуль.
Привет.
Меня это сбивает с толку. Кроме того, в PEP8 не рекомендуется:
«Следует избегать импорта подстановочных знаков (из импорта модуля *), поскольку из-за него неясно, какие имена присутствуют в пространстве имен, что сбивает с толку как читателей, так и многие автоматизированные инструменты ...»
Я руководствовался в основном профессиональными кодами, такими как Ninja-Ide, вы можете увидеть код здесь: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyЭто также сделано в PyQt, но в любом случае нет ничего, что заставляло бы вас использовать ту или иную форму.
Здесь вы можете увидеть обсуждение StackOverflow по этому поводу:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Там упоминаются плюсы и минусы каждого стиля.
хорошо, извините, я не понял вас, я знаю это, я сделал это только потому, что я не собирался давать объяснение каждому элементу QApplication, QWidget, а затем обобщать, но вы абсолютно правы.
Простите за недоразумение.
Нет, вы не поняли или не обратили внимания ... Я имею в виду использование «from module import *», то есть «звездочку» ... в том сообщении StackOverflow они говорят о другом, но они все равно это подчеркивают:
«Любой метод приемлем, но не используйте from module import *.»
Теперь это понятно?
Немец прав. Какая польза от импорта модуля from, если вы импортируете весь контент со звездочкой для этого модуля импорта. Slds такой же красивый пост.
Ну что ж, теперь я понимаю ... в любом случае, не задерживайте меня, я тоже новичок в Python. Если вы зайдете в мой блог, то увидите, что я сделал сообщение, подобное вашему, но с Gtk + 3 с использованием PyGObject.
Привет и спасибо!
Здесь я оставляю Pep8, по-испански рекомендуя использовать im
Крайне не рекомендуется использовать относительный импорт для импорта кода из пакета. Всегда используйте абсолютный путь к пакету для всего импорта. Даже сейчас, когда PEP 328 [7] полностью реализован в Python 2.5, использование относительного импорта серьезно не рекомендуется; абсолютный импорт более переносим и обычно более читабелен.
При импорте класса из модуля это обычно правильно.
из myclass import MyClass
из foo.bar.yourclass импортировать YourClass
привет
Прочитайте это: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Алекс Мартелли (разработчик ядра py) рекомендует что-то вроде этого:
from PyQt4 import QtCore, QtGui
Я хотел большего, когда была 2-я часть !?
Привет 🙂
Очень хорошие учебники, плюс, возможно, будет удобнее программировать.
Вот пример интерфейса с нуля (без использования QtDesigner).
https://github.com/xr09/metrocontador
Приложение dhunter отличное, тут мы даже не знаем сколько с нас берут за электричество, хаха привет.
Спасибо, это одно из тех приложений, которые делают для личного пользования и служат другим. Здесь на Кубе квитанция разбита по курсу, алгоритм легко скопировать.
Я буду очень осведомлен об этом курсе. Меня давно интересуют кроссплатформенные приложения, и я считаю, что комбинация Python + QT / Pyside - отличный вариант. Поздравления и поздравления с инициативой
Я выполнил все шаги точно так, как вы говорите, но когда я запускаю приложение app1.py в терминале, оно сообщает мне Traceback (последний вызов последний):
Файл "app1.py", строка 1, в
из импорта PySide.QtGui *
ImportError: нет модуля с именем PySide.QtGui. Для чего это ?.
это потому, что вы используете версию python в качестве интерпретатора по умолчанию, но у вас не установлен pyside для этой версии.
Попробуйте добавить в начало файла:
#! usr / bin / python3
или иначе
#! usr / bin / python2
Я рекомендую вам использовать Eclipse с pydev и правильно настроить интерпретатор.
СЛД
#! / usr / bin / python3
или иначе
#! / usr / bin / python2
PySide еще не совместим с Python3, будьте осторожны с этим, а во-вторых, проверьте импорт через интерактивную консоль python, чтобы вы знали, установлен он у вас или нет, он также устанавливает pip.
Как мне это проверить?
В консоли используйте «Python», в любом случае я рекомендую вам войти в библиотеку, которую я оставил ниже в сообщении, и загрузить «Python для всех», вам нужно больше базы.
Привет и удачи.
Большое спасибо, мне это очень помогло.
посмотри, друг F3niX, я нашел это, кажется, что для python 3.3.2 в окнах (это то, что у меня есть до следующей недели) у них есть двоичные файлы для 32 бит и 64 бит, я пробовал ваш пример, и он работает с python 3.3.2 и Я использую PyScripter, который устанавливает разные среды, если вы открываете python 3, он запускает сценарии, такие как python 3, и если вы открываете 2.7, он выполняет их как 2.7 и так далее (логически вы должны установить эту версию python ... это понятно)
http://qt-project.org/wiki/PySide_Binaries_Windows
Оставлю тебя там, посплетничать, может быть, кому-то еще послужит 😀
Я получаю ту же ошибку.
У вас установлен PySide?
Я установил его.
И попробуйте с PyQT4 установить его, а затем изменить строки PySide для PyQT4 или PyQt4 и дать ему выполнить. джоджо. Воспользуйтесь затмением. Удачи.
Как это сделать?.
Большое спасибо !!! В ожидании второй главы
В эту пятницу я могу опубликовать это (университет меня немного набил) привет.
Друг F3nIX Я жду твоего туториала № 2, 3, 4… Н хе-хе
У меня уже установлен очень элегантный Linux с ожиданием PySide и всем остальным!
Посмотрим, когда ему предложат показать нового репетитора 😀
Извините, друг, у меня есть черновики, но работа и учеба не дали мне времени, обещаю на этой неделе что-нибудь выпустить.
Большое приветствие
Здравствуйте, я давно интересовался изучением Python, но у меня есть некоторые сомнения. Я хочу сделать приложение, которое немного улучшит информационный процесс семейного бизнеса, в котором я работаю, я хотел бы сделать что-нибудь для Windows, сначала с окнами, оно будет работать все на одном компьютере, а затем может быть подключенным через Интернет к базе данных, к которой будет подключаться пара компьютеров. Существует много разнообразия в графическом интерфейсе приложения, и это вызывает у меня головокружение. Что посоветуете придать ему современный и привлекательный вид? Я бы также сделал несколько статистических графиков и распечатал отчеты, что я могу использовать для этого? Ура
Здравствуйте, очень хороший ваш пост, у меня есть вопрос, могу ли я без проблем продать свое приложение, созданное с помощью pyside?
Что ж, лицензии - это всегда безумие, но лицензии свободных программ также позволяют вам продавать программы, происходит то, что GPL вынуждает вас распространять код, в отличие от LGPL, которая не заставляет вас делать это.
В любом случае я не специалист по лицензированию.
Привет.