Первые шаги с Python + Qt # 1

Этот учебник ориентирован на обучение использованию инфраструктуры 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:

3

Посмотреть код

Запускаем его из консоли так:

python app1.py

Это окно должно появиться

2

Что? Только это, потому что если бы у вас раньше была только консоль, на что вы жалуетесь? Чего ты ожидал, Эрп? давай, человек, что-то начинается.

Теперь объясним код:

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

Научное программирование на питоне.

И многое другое.

ССЫЛКА НА ФОРУМ

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


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   @ trust17 сказал

    Спасибо за сообщение!

  2.   Annubis сказал

    2 вещи:

    1. Qt изначально разрабатывалась не Nokia, а компанией Trolltech, которую позже купила Nokia. Последний затем продал Qt компании Digia.
    2. Изображение в первом примере приложения не соответствует коду.

    Спасибо за туториал, буду следить за ним 🙂

    1.    f3niX сказал

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

    2.    f3niX сказал

      Я не могу изменять, оставляю это редактору.

      Привет.

      1.    Neysonv сказал

        Напишите редактору исправленный учебник. вы можете отправить его на электронную почту @nano, который является одним из редакторов
        mailto: nano.world.contact@gmail.com
        пожалуйста, не оставляйте учебник вот так
        привет

  3.   Germán сказал

    Меня поражает одно: почему вы используете в своем коде "from import *"?

    Привет!

    1.    f3niX сказал

      Это правильный способ импорта, при таком импорте вы указываете, какой конкретный класс модуля вы хотите импортировать, и не вызываете полный модуль.

      Привет.

      1.    Germán сказал

        Меня это сбивает с толку. Кроме того, в PEP8 не рекомендуется:

        «Следует избегать импорта подстановочных знаков (из импорта модуля *), поскольку из-за него неясно, какие имена присутствуют в пространстве имен, что сбивает с толку как читателей, так и многие автоматизированные инструменты ...»

        1.    f3niX сказал

          Я руководствовался в основном профессиональными кодами, такими как 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

          Там упоминаются плюсы и минусы каждого стиля.

          1.    f3niX сказал

            хорошо, извините, я не понял вас, я знаю это, я сделал это только потому, что я не собирался давать объяснение каждому элементу QApplication, QWidget, а затем обобщать, но вы абсолютно правы.

            Простите за недоразумение.

          2.    Germán сказал

            Нет, вы не поняли или не обратили внимания ... Я имею в виду использование «from module import *», то есть «звездочку» ... в том сообщении StackOverflow они говорят о другом, но они все равно это подчеркивают:

            «Любой метод приемлем, но не используйте from module import *.»

            Теперь это понятно?

          3.    Felipe сказал

            Немец прав. Какая польза от импорта модуля from, если вы импортируете весь контент со звездочкой для этого модуля импорта. Slds такой же красивый пост.

          4.    Germán сказал

            Ну что ж, теперь я понимаю ... в любом случае, не задерживайте меня, я тоже новичок в Python. Если вы зайдете в мой блог, то увидите, что я сделал сообщение, подобное вашему, но с Gtk + 3 с использованием PyGObject.

            Привет и спасибо!

        2.    f3niX сказал

          Здесь я оставляю Pep8, по-испански рекомендуя использовать im
          Крайне не рекомендуется использовать относительный импорт для импорта кода из пакета. Всегда используйте абсолютный путь к пакету для всего импорта. Даже сейчас, когда PEP 328 [7] полностью реализован в Python 2.5, использование относительного импорта серьезно не рекомендуется; абсолютный импорт более переносим и обычно более читабелен.

          При импорте класса из модуля это обычно правильно.
          из myclass import MyClass
          из foo.bar.yourclass импортировать YourClass

          привет

          1.    Данхантер сказал

            Прочитайте это: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided

            Алекс Мартелли (разработчик ядра py) рекомендует что-то вроде этого:


            from PyQt4 import QtCore, QtGui

  4.   MSX сказал

    Я хотел большего, когда была 2-я часть !?
    Привет 🙂

  5.   элиотайм3000 сказал

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

  6.   Данхантер сказал

    Вот пример интерфейса с нуля (без использования QtDesigner).

    https://github.com/xr09/metrocontador

    1.    f3niX сказал

      Приложение dhunter отличное, тут мы даже не знаем сколько с нас берут за электричество, хаха привет.

      1.    Данхантер сказал

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

  7.   Хосе Элой сказал

    Я буду очень осведомлен об этом курсе. Меня давно интересуют кроссплатформенные приложения, и я считаю, что комбинация Python + QT / Pyside - отличный вариант. Поздравления и поздравления с инициативой

  8.   Брайан Родригес сказал

    Я выполнил все шаги точно так, как вы говорите, но когда я запускаю приложение app1.py в терминале, оно сообщает мне Traceback (последний вызов последний):
    Файл "app1.py", строка 1, в
    из импорта PySide.QtGui *
    ImportError: нет модуля с именем PySide.QtGui. Для чего это ?.

    1.    Felipe сказал

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

      Попробуйте добавить в начало файла:
      #! usr / bin / python3
      или иначе
      #! usr / bin / python2

      Я рекомендую вам использовать Eclipse с pydev и правильно настроить интерпретатор.
      СЛД

      1.    Felipe сказал

        #! / usr / bin / python3
        или иначе
        #! / usr / bin / python2

        1.    f3niX сказал

          PySide еще не совместим с Python3, будьте осторожны с этим, а во-вторых, проверьте импорт через интерактивную консоль python, чтобы вы знали, установлен он у вас или нет, он также устанавливает pip.

          1.    Брайан Родригес сказал

            Как мне это проверить?

          2.    f3niX сказал

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

            Привет и удачи.

          3.    Брайан Родригес сказал

            Большое спасибо, мне это очень помогло.

          4.    Маурисио Тобарес сказал

            посмотри, друг 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

            Оставлю тебя там, посплетничать, может быть, кому-то еще послужит 😀

      2.    Брайан Родригес сказал

        Я получаю ту же ошибку.

        1.    Germán сказал

          У вас установлен PySide?

          1.    Брайан Родригес сказал

            Я установил его.

        2.    Felipe сказал

          И попробуйте с PyQT4 установить его, а затем изменить строки PySide для PyQT4 или PyQt4 и дать ему выполнить. джоджо. Воспользуйтесь затмением. Удачи.

          1.    Брайан Родригес сказал

            Как это сделать?.

  9.   Карлинукс сказал

    Большое спасибо !!! В ожидании второй главы

    1.    f3niX сказал

      В эту пятницу я могу опубликовать это (университет меня немного набил) привет.

  10.   МаурисиоТобарес сказал

    Друг F3nIX Я жду твоего туториала № 2, 3, 4… Н хе-хе

    У меня уже установлен очень элегантный Linux с ожиданием PySide и всем остальным!

    Посмотрим, когда ему предложат показать нового репетитора 😀

    1.    f3niX сказал

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

      Большое приветствие

  11.   Данте сказал

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

  12.   Хорхе сказал

    Здравствуйте, очень хороший ваш пост, у меня есть вопрос, могу ли я без проблем продать свое приложение, созданное с помощью pyside?

    1.    f3niX сказал

      Что ж, лицензии - это всегда безумие, но лицензии свободных программ также позволяют вам продавать программы, происходит то, что GPL вынуждает вас распространять код, в отличие от LGPL, которая не заставляет вас делать это.

      В любом случае я не специалист по лицензированию.

      Привет.