Цей підручник зосереджений на навчанні використання фреймворку QT з використанням Python як мови програмування, для цього ми можемо використовувати як PySide, так і PyQt, але в цьому підручнику ми будемо використовувати PySide, оскільки автору цього посібника більше подобається ліцензія LGPL PySide. ніж GPL або PyQt Commercial.
По-перше ... Що таке Python?
За даними Вікіпедії:
"Python - це інтерпретована мова програмування на високому рівні, філософія якої наголошує на дуже чистому синтаксисі та сприяє читанню коду".
Python - це мова програмування з декількома парадигмами, тому вона підтримує різні парадигми програмування на python, наприклад, вона підтримує: об’єктно-орієнтоване програмування (ООП), імперативне програмування (структуроване) та меншою мірою функціональне програмування.
Тільки що?
Ні, це також мова динамічного набору тексту, що означає, що python дозволяє нам призначати різні типи значень одній і тій же змінній під час виконання програми, одні вважають це перевагою, інші недоліком, переконайтеся самі .
На додаток до вищезазначеного, Python дозволяє нам (як і багатьом іншим) програмувати як у веб-середовищі, так і на веб-робочому столі, він також є крос-платформним, наразі він підтримує Gnu / Linux, Windows, Mac osx, Android (якщо ви потрібно згадати їх для вашої модифікації).
Що таке QT?
QT - це багатоплатформна структура, спочатку розроблена Nokia, яка згодом буде продана Digia, яка використовується для розробки додатків, вона написана на C ++, але може використовуватися іншими мовами через Bindings (у нашому випадку PySide або PyQt )
Відмінності між PySide та PyQt
Головним чином
- Ліцензія, PySide ліцензована за умовами LGPL, а PyQT - за умовами GPL або за комерційною ліцензією, тому нам доведеться заплатити у разі створення закритої програми.
- PySide створений Nokia, а PyQt - RiverBank.
- PySide позбавляє нас від проблем використання STR кожного разу, коли ми використовуємо QString кожного з об'єктів QT.
Ми можемо детально описати повні зміни Тут.
Приготування:
Встановлюємо Qt:
Якщо у нас є дистрибутив з Kde, ми вже маємо те, що нам потрібно, якщо ні:
sudo apt-get install qt4-dev-tools
Встановлюємо PySide:
sudo apt-get install pyside pyside-tools
Наш перший додаток Python + QT
Ми переходимо до нашого улюбленого текстового редактора, я рекомендую вам встановити sublime-text2, але ви можете використовувати той, який вам більше подобається, і ми вводимо наступний код і зберігаємо його з іменем, яке ми хочемо завжди закінчувати розширенням ".py" , Я збережу як app1.py:
Ми запускаємо його з консолі так:
python app1.py
Це вікно має з’явитися
Що? Тільки це, бо якщо у вас була лише консоль раніше, на що ви скаржитесь? Що ти очікував, Erp? давай людині, бо щось починається.
Тепер пояснимо код:
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
Наукове програмування на python.
Та багато іншого.
Сподіваюся, вони вам служать, прощаюся, як завжди приємно належати до цієї чудової спільноти.
Дякую за допис!
2 речі:
1. Спочатку Qt розроблялася не Nokia, а Trolltech, яку згодом придбала Nokia. Потім останні продали Qt Digia.
2. Зображення у першому прикладі програми не відповідає коду.
Дякую за підручник, я буду його виконувати 🙂
Ви абсолютно праві, я пропустив це. І друге, що ви також маєте рацію, це те, що я змінив його, щоб полегшити і не використовувати клас, і я пропустив модифікацію, початкові помилки. Я вже передаю виправлення якомусь редактору, щоб схвалити їх.
Я не можу змінити, я залишаю це якомусь редактору.
Привіт.
Надішліть редактору електронний лист із виправленим підручником. Ви можете надіслати його на електронну адресу @nano, який є одним із редакторів
mailto: nano.world.contact@gmail.com
будь ласка, не залишайте підручник таким
що стосується
Мене вражає одне: чому ви використовуєте "з імпорту *" у своєму коді?
Привіт!
Це правильний спосіб імпорту, під час такого імпорту ви повідомляєте, який конкретний клас модуля ви хочете імпортувати, і не викликаєте повний модуль.
Привіт.
Я вважаю це заплутаним. Крім того, це не рекомендується в 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, а потім узагальнювати, але ви абсолютно праві.
Вибачте за непорозуміння.
Ні, ви не зрозуміли або не звернули уваги ... Я маю на увазі використання «з модуля імпорту *», тобто я маю на увазі «зірочку» ... в тому дописі StackOverflow вони говорять про щось інше, але вони все одно наголошують на цьому:
"Будь-який метод є прийнятним, але не використовуйте модуль імпорту *."
Це зараз зрозуміло?
Німець має рацію. Яка користь від імпорту модуля, якщо ви імпортуєте весь вміст зі зірочкою для цього модуля імпорту. Slds настільки ж приємний пост.
Ах, добре, тепер я розумію ... у будь-якому випадку, не забирай мене занадто довго, я також новачок у Python. Якщо ви переглянете мій блог, то побачите, що я зробив допис, схожий на ваш, але з Gtk + 3 за допомогою PyGObject.
Вітаю та дякую!
Тут я залишаю Pep8, іспанською мовою, що рекомендує використовувати im
Вкрай недоцільно використовувати відносний імпорт для імпорту коду з пакета. Завжди використовуйте абсолютний шлях пакету для всього імпорту. Навіть зараз, коли PEP 328 [7] повністю реалізований в Python 2.5, використання відносного імпорту серйозно не рекомендується; абсолютний імпорт є більш портативним і, як правило, більш читабельним.
Коли ви імпортуєте клас із модуля, зазвичай це правильно робити
з myclass імпортувати 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, але маю певні сумніви. Що я хочу, це зробити заявку, щоб трохи вдосконалити інформаційний процес сімейного бізнесу, де я працюю, я хотів би зробити щось для вікон, спочатку з вікнами, все це працювало б на одному ПК, а потім, що він може бути підключеним через Інтернет до бази даних, до якої буде підключено пару комп’ютерів. Існує багато різноманітності з точки зору графічного інтерфейсу програми, і це викликає у мене запаморочення. Що ви рекомендуєте надати йому сучасний та привабливий вигляд? Я б також зробив статистичну графіку та надрукував звіти, що для цього я можу використати? На ура
Привіт, дуже хороший ваш допис, у мене питання, чи можу я без проблем продати свій додаток, виготовлений за допомогою pyside?
Ну, ліцензії завжди божевільні, але ліцензії на безкоштовне програмне забезпечення також дозволяють вам продавати програмне забезпечення, але GPL змушує вас розповсюджувати код, на відміну від LGPL, який не змушує вас це робити.
У будь-якому випадку, я не фахівець з питань ліцензування.
Привіт.