Pierwsze kroki w Pythonie + Qt # 1

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:

3

Zobacz Kod

Uruchamiamy go z konsoli w następujący sposób:

python app1.py

To okno powinno się pojawić

2

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.

LINK DO FORUM

Mam nadzieję, że będą Ci służyć, żegnam, jak zawsze z przyjemnością przynależność do tej wspaniałej społeczności.


41 komentarzy, zostaw swoje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   @ trust17 powiedział

    Dzięki za post!

  2.   Annubis powiedział

    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

    1.    f3niX powiedział

      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.

    2.    f3niX powiedział

      Nie mogę modyfikować, zostawiam to jakiemuś redaktorowi.

      Pozdrowienia.

      1.    Neysonv powiedział

        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

  3.   Germán powiedział

    Uderzyło mnie jedno: dlaczego używasz w swoim kodzie „from import *”?

    Pozdrowienia!

    1.    f3niX powiedział

      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.

      1.    Germán powiedział

        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 ...”

        1.    f3niX powiedział

          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.

          1.    f3niX powiedział

            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.

          2.    Germán powiedział

            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?

          3.    Felipe powiedział

            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.

          4.    Germán powiedział

            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!

        2.    f3niX powiedział

          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

          1.    łowca powiedział

            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

  4.   msx powiedział

    Chciałem więcej, kiedy druga część!?
    Pozdrowienia 🙂

  5.   Eliotime3000 powiedział

    Bardzo dobre samouczki, a także wygodniejsze w programowaniu.

  6.   łowca powiedział

    Oto przykład interfejsu od podstaw (bez użycia QtDesigner).

    https://github.com/xr09/metrocontador

    1.    f3niX powiedział

      Aplikacja dhunter jest doskonała, tutaj nawet nie wiemy, ile pobierają nam prąd, haha ​​pozdrowienia.

      1.    łowca powiedział

        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.

  7.   Jose Eloy powiedział

    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

  8.   Bryan Rodriguez powiedział

    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?

    1.    Felipe powiedział

      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

      1.    Felipe powiedział

        #! / usr / bin / python 3
        albo
        #! / usr / bin / python 2

        1.    f3niX powiedział

          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.

          1.    Bryan Rodriguez powiedział

            Jak to zweryfikować?

          2.    f3niX powiedział

            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.

          3.    Bryan Rodriguez powiedział

            Dziękuję bardzo, bardzo mi to pomogło.

          4.    Mauricio Tobaresa powiedział

            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

      2.    Bryan Rodriguez powiedział

        Otrzymuję ten sam błąd.

        1.    Germán powiedział

          Czy masz zainstalowany PySide?

          1.    Bryan Rodriguez powiedział

            Mam to zainstalowane.

        2.    Felipe powiedział

          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.

          1.    Bryan Rodriguez powiedział

            Jak mogę to zrobić?.

  9.   karlinux powiedział

    Dziękuję Ci bardzo !!! Czekam na drugi rozdział

    1.    f3niX powiedział

      W najbliższy piątek mogę to opublikować (Uniwersytet ma mi trochę pełne) pozdrowienia.

  10.   Mauricio Tobares powiedział

    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 😀

    1.    f3niX powiedział

      Przepraszam przyjacielu, mam to w szkicach, ale praca i studia nie dały mi czasu, obiecuję, że coś wyjdę w tym tygodniu.

      Wielkie powitanie

  11.   Dante powiedział

    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

  12.   Jorge powiedział

    Witam, bardzo dobry post, mam pytanie, czy mogę bez problemu sprzedać moją aplikację zrobioną z pyside?

    1.    f3niX powiedział

      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.