Ten samouczek koncentruje się na nauczaniu korzystania z frameworka QT przy użyciu Pythona jako języka programowania, w tym celu możemy używać zarówno PySide, jak i PyQt, ale w tym samouczku będziemy używać PySide, ponieważ autor tego samouczka bardziej lubi licencję LGPL PySide. niż komercyjny GPL lub PyQt.
Po pierwsze ... Co to jest Python?
Według Wikipedii:
„Python to interpretowany język programowania bardzo wysokiego poziomu, którego filozofia kładzie nacisk na bardzo czystą składnię i preferuje czytelny kod”.
Python jest językiem programowania wielodigmowym, więc obsługuje różne paradygmaty programowania w Pythonie, na przykład obsługuje: programowanie obiektowe (OOP), programowanie imperatywne (strukturalne) oraz w mniejszym stopniu programowanie funkcjonalne.
Tylko to?
Nie, to także dynamiczny język pisania, co oznacza, że python pozwala nam przypisać różne typy wartości do tej samej zmiennej podczas wykonywania programu, niektórzy postrzegają to jako zaletę, inni jako wadę, przekonaj się .
Oprócz wyżej wymienionych, Python pozwala nam (podobnie jak wiele innych) na programowanie zarówno w środowisku webowym jak i na pulpicie webowym, jest też wieloplatformowy, obecnie obsługuje Gnu / Linux, Windows, Mac osx, Android (jeśli trzeba o nich wspomnieć modyfikacja).
Co to jest QT?
QT to wieloplatformowy framework, pierwotnie opracowany przez firmę Nokia, który później zostanie sprzedany firmie Digia, która jest używana do tworzenia aplikacji, jest napisana w C ++, ale może być używana w innych językach za pośrednictwem Bindings (w naszym przypadku PySide lub PyQt )
Różnice między PySide i PyQt
Głównie
- Licencja, PySide jest licencjonowane na warunkach LGPL, a PyQT na warunkach GPL lub na licencji komercyjnej, więc w przypadku stworzenia zamkniętej aplikacji musielibyśmy zapłacić.
- PySide jest tworzony przez Nokia, a PyQt przez RiverBank.
- PySide oszczędza nam kłopotów z używaniem STR za każdym razem, gdy używamy QString każdego z obiektów QT.
Możemy szczegółowo opisać wszystkie zmiany Tutaj.
Przygotowanie:
Instalujemy Qt:
Jeśli mamy dystrybucję z Kde, powinniśmy już mieć to, czego potrzebujemy, jeśli nie:
sudo apt-get zainstaluj qt4-dev-tools
Instalujemy PySide:
sudo apt-get install pyside pyside-tools
Nasza pierwsza aplikacja Python + QT
Przechodzimy do naszego ulubionego edytora tekstu, polecam zainstalowanie sublime-text2, ale możesz użyć tego, który wolisz, a my wpisujemy następujący kod i zapisujemy go z nazwą, która ma zawsze kończyć się rozszerzeniem „.py”, ja Zapiszę jako app1.py:
Uruchamiamy go z konsoli w następujący sposób:
python app1.py
To okno powinno się pojawić
Tylko tyle, bo gdybyś miał wcześniej tylko konsolę, na co narzekasz? Czego się spodziewałeś, Erp? chodź człowieku, bo coś się zaczyna.
Teraz wyjaśnijmy kod:
from PySide.QtGui import *
from sys import exit, argv
Tutaj importujemy niezbędne moduły do wykonania PySide.
app = QApplication(argv)
Tworzymy instancję Qapplication z nazwą app.
window = Qwidget()
Tworzymy instancję QWidget ().
window.setWindowTitle("Primera App PySide")
Wykonujemy metodę setWindowTitle, która otrzymuje String jako parametr "ustawiania" tytułu naszego Qwidgetu.
window.show()
Pokazujemy nasze okno
exit(app.exec_())
w końcu wykonujemy nieskończony cykl wykonywania naszej QApplication ().
dzięki
Dziękuję wszystkim, którzy mnie tu śledzili i byli pomocni. W następnym samouczku wyjaśnię, jak zaprojektować nasze okna za pomocą QT Designer i zaimportować je do naszych projektów.
Dodatkowo dodaję link do forum desde linux gdzie mam mały motyw z małą biblioteką samouczków i przewodników Pythona, zawierających różne terminy, w tym:
Podstawowe samouczki Pythona
wxPython
PyQt i PySide
Django
web2py
Programowanie naukowe w Pythonie.
I wiele więcej.
Mam nadzieję, że będą Ci służyć, żegnam, jak zawsze z przyjemnością przynależność do tej wspaniałej społeczności.
Dzięki za post!
2 rzeczy:
1. Qt nie zostało pierwotnie opracowane przez firmę Nokia, ale przez firmę Trolltech, którą później kupiła Nokia. Ten ostatni sprzedał następnie Qt firmie Digia.
2. Obraz w pierwszym przykładzie aplikacji nie pasuje do kodu.
Dzięki za samouczek, będę go śledzić it
Masz całkowitą rację, przegapiłem to. A druga rzecz, którą też masz rację, to że zmieniłem to tak, żeby było łatwiej i nie korzystałem z klasy i brakowało mi modyfikacji, początkujących błędów. Przekazuję już poprawki jakiemuś redaktorowi do ich zatwierdzenia.
Nie mogę modyfikować, zostawiam to jakiemuś redaktorowi.
Pozdrowienia.
Wyślij e-mail do redaktora z poprawionym samouczkiem. możesz wysłać go na adres e-mail @nano, który jest jednym z redaktorów
mailto: nano.world.contact@gmail.com
proszę nie zostawiaj samouczka w ten sposób
pozdrowienia
Uderzyło mnie jedno: dlaczego używasz w swoim kodzie „from import *”?
Pozdrowienia!
Jest to poprawny sposób importowania, kiedy importujesz w ten sposób, mówisz, jaką konkretną klasę modułu chcesz importować, i nie wywołujesz całego modułu.
Pozdrowienia.
To trochę zagmatwane. Ponadto nie jest zalecane w PEP8:
„Należy unikać importu symboli wieloznacznych (z importu modułu *), ponieważ powodują one, że nie jest jasne, które nazwy są obecne w przestrzeni nazw, myląc zarówno czytelników, jak i wiele zautomatyzowanych narzędzi ...”
Kierowałem się głównie profesjonalnymi kodami, takimi jak Ninja-Ide, kod możesz zobaczyć tutaj: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyRobi się to również w PyQt, ale w żaden sposób nie ma nic, co zmusza cię do użycia jednej lub drugiej formy.
Tutaj możesz zobaczyć dyskusję na temat StackOverflow na ten temat:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Tam wspominają o zaletach i wadach każdego ze stylów.
ok przepraszam, nie zrozumiałem cię, wiem, że zrobiłem to tylko dlatego, że nie zamierzałem wyjaśniać każdego elementu QApplication, QWidget, więc uogólniaj, ale masz absolutną rację.
Przepraszam za nieporozumienie.
Nie, nie zrozumiałeś lub nie zwróciłeś uwagi ... mam na myśli użycie «from module import *», to znaczy, mam na myśli «gwiazdkę» ... w tym poście StackOverflow mówią o czymś innym, ale nadal to podkreślają:
„Każda metoda jest dopuszczalna, ale nie używaj z importu modułu *.”
Czy teraz jest to zrozumiałe?
Niemiecki ma rację. Jaki jest pożytek z importu z modułu, jeśli importujesz całą zawartość z gwiazdką, dla tego modułu importu. Slds tak samo fajny post.
No cóż, teraz rozumiem… w każdym razie, nie zabieraj mi zbyt długo, jestem też początkującym w Pythonie. Jeśli zatrzymasz się na moim blogu, zobaczysz, że zrobiłem post podobny do twojego, ale z Gtk + 3 przy użyciu PyGObject.
Pozdrowienia i podziękowania!
Tutaj zostawiam Pep8, po hiszpańsku zalecając użycie im
Zdecydowanie nie zaleca się używania importu względnego do importowania kodu z pakietu. Zawsze używaj bezwzględnej ścieżki pakietu dla wszystkich importów. Nawet teraz, gdy PEP 328 [7] jest w pełni zaimplementowany w Pythonie 2.5, używanie importu względnego jest poważnie odradzane; import bezwzględny jest bardziej przenośny i zwykle bardziej czytelny.
Podczas importowania klasy z modułu zwykle jest to poprawne
z myclass import MyClass
z foo.bar.yourclass importuj YourClass
pozdrowienia
Przeczytaj to: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alex Martelli (programista core py) poleca coś takiego:
from PyQt4 import QtCore, QtGui
Chciałem więcej, kiedy druga część!?
Pozdrowienia 🙂
Bardzo dobre samouczki, a także wygodniejsze w programowaniu.
Oto przykład interfejsu od podstaw (bez użycia QtDesigner).
https://github.com/xr09/metrocontador
Aplikacja dhunter jest doskonała, tutaj nawet nie wiemy, ile pobierają nam prąd, haha pozdrowienia.
Dziękuję, jest to jedna z tych aplikacji, które tworzy się do użytku osobistego i służy innym. Tutaj na Kubie paragon jest rozbity na kurs, łatwo jest skopiować algorytm.
Będę bardzo świadomy tego kursu. Od dawna interesuję się aplikacjami wieloplatformowymi i uważam, że kombinacja Python + QT / Pyside to świetna opcja. Pozdrawiamy i gratulujemy inicjatywy
Wykonałem wszystkie kroki dokładnie tak, jak mówisz, ale kiedy uruchamiam aplikację app1.py w terminalu, wyświetla mi się komunikat Traceback (ostatnie połączenie jako ostatnie):
Plik „app1.py”, wiersz 1, w
z importu PySide.QtGui *
ImportError: Żaden moduł o nazwie PySide.QtGui. Po co to jest?
Dzieje się tak, ponieważ używasz wersji Pythona jako domyślnego interpretera, ale nie masz zainstalowanego pyside dla tej wersji.
Spróbuj dodać na początku pliku:
#! usr / bin / python3
albo
#! usr / bin / python2
Zalecam używanie Eclipse z pydevem i poprawną konfigurację interpretera.
slds
#! / usr / bin / python 3
albo
#! / usr / bin / python 2
PySide nie jest jeszcze kompatybilny z Pythonem3, bądź ostrożny, a po drugie, sprawdź import za pomocą interaktywnej konsoli Pythona, abyś wiedział, że masz go zainstalowanego, czy nie, instaluje również pip.
Jak to zweryfikować?
W konsoli użyj "Pythona", zresztą polecam wejść do biblioteki, którą zostawiłem poniżej w poście i pobrać "python dla każdego", potrzebujesz więcej bazy.
Pozdrowienia i powodzenia.
Dziękuję bardzo, bardzo mi to pomogło.
spójrz przyjacielu F3niX Znalazłem to, wydaje się, że dla pythona 3.3.2 na windows (co mam do przyszłego tygodnia) mają pliki binarne na 32 bity i 64 bity, wypróbowałem twój przykład i działa z pythonem 3.3.2 i używam PyScripter, który instaluje różne środowiska, jeśli otworzysz python 3, uruchomi skrypty jako python 3, a jeśli otworzysz 2.7, wykonuje je jako 2.7 i tak dalej (logicznie musisz mieć zainstalowaną tę wersję Pythona ... to zrozumiałe)
http://qt-project.org/wiki/PySide_Binaries_Windows
Zostawię cię tam plotki, może to komuś innemu posłuży
Otrzymuję ten sam błąd.
Czy masz zainstalowany PySide?
Mam to zainstalowane.
Spróbuj z PyQT4, zainstaluj go, a następnie zmień linie PySide na PyQT4 lub PyQt4 i daj go do wykonania. jojo. Użyj zaćmienia. Szczęście.
Jak mogę to zrobić?.
Dziękuję Ci bardzo !!! Czekam na drugi rozdział
W najbliższy piątek mogę to opublikować (Uniwersytet ma mi trochę pełne) pozdrowienia.
Przyjacielu F3nIX Czekam na Twój tutorial nr 2, 3, 4… N hehehe
Mam już zainstalowany mój bardzo elegancki linux z PySide, czekam i wszystko!
Zobaczmy, kiedy zachęci się go do pokazania nowego korepetytora 😀
Przepraszam przyjacielu, mam to w szkicach, ale praca i studia nie dały mi czasu, obiecuję, że coś wyjdę w tym tygodniu.
Wielkie powitanie
Witam, od dawna interesuję się nauką Pythona, ale mam pewne wątpliwości. Chce zrobić aplikację, żeby trochę usprawnić proces informacyjny firmy rodzinnej, w której pracuję, chciałbym zrobić coś dla okien, na początku z oknami, wszystko by działało na jednym komputerze, a potem może być połączone przez Internet z bazą danych, z którą łączy się kilka komputerów. Istnieje duża różnorodność w zakresie GUI aplikacji, co przyprawia mnie o zawrót głowy. Co polecasz, aby nadać mu nowoczesny i atrakcyjny wygląd? Zrobiłbym również wykresy statystyczne i wydrukowałbym raporty, czego mogę do tego użyć? Twoje zdrowie
Witam, bardzo dobry post, mam pytanie, czy mogę bez problemu sprzedać moją aplikację zrobioną z pyside?
Cóż, licencje są zawsze szalone, ale licencje wolnego oprogramowania pozwalają również na sprzedaż oprogramowania, co się dzieje, że GPL zmusza cię do dystrybucji kodu, w przeciwieństwie do LGPL, która nie zmusza cię do tego.
W każdym razie nie jestem ekspertem w dziedzinie licencjonowania.
Pozdrowienia.