Tworzenie aplikacji w Pythonie 3, Glade i GTK + 3 w systemie Windows

Wprowadzenie

W systemie GNU / Linux tworzenie aplikacji w Pythonie 3, Glade i GTK + 3 jest bardzo łatwe, pakiety są domyślnie dostępne w większości dystrybucji.

Przez Polana możemy szybko i łatwo tworzyć interfejsy użytkownika, a następnie używać ich w połączeniu z Pythonem. Aby to osiągnąć, użyj PyGOObject dzięki systemowi introspekcji oferowanemu przez GNOME, który znacznie ułatwia szybkie tworzenie aplikacji (RAD); możliwe jest również korzystanie z naszych interfejsów stworzonych w Glade z innych języków programowania.

Problem pojawia się, gdy chcemy korzystać z naszych aplikacji w systemie Microsoft Windows, ponieważ do niedawna pakiety dla tego systemu oficjalnie nie istniały.

Celem tego samouczka jest, aby aplikacje stworzone w systemie GNU / Linux przy użyciu Pythona 3 i GTK + 3 działały bez problemów w systemie Windows.

Wymagania

  • Python 3.3
  • Gtk + 3
  • Glade 3.14 lub nowszy (projektant GUI)
  • pygoobiekt

Instalacja w systemie Windows

Rozpocznie się od utworzenia folderu o nazwie oprogramowanie lub inny z Twoich preferencji, a my zapiszemy w nim wszystkie pobrane pakiety.

Pobierz pakiety instalacyjne

Pobierz Python 3.3

Można go pobrać z oficjalnej strony Pythona python.org

Pobierz instalator Pythona

Pobierz instalator Pythona

Klikając link (Instalator Windows) instalator Pythona zostanie pobrany.

Pobierz Glade

Witryna pobierania: polana.gnome.org

Wersje Python i Glade są 32-bitowe, ale działają bez problemów w systemach 64-bitowych

Glade Page

Glade Page

Pobierz PyGObject

Witryna pobierania: https://wiki.gnome.org/PyGObject

Musimy pobrać wersję dla GTK + 3

PyGOObject

PyGOObject

PyGObject w kodzie Google

PyGObject w kodzie Google

Instalowanie pakietów

Cóż, do tego momentu mamy już wszystkie pobrane pakiety w folderze oprogramowanie a ponieważ pobraliśmy każdy pakiet, zaczniemy najpierw od instalacji Pythona.

Pobrane pakiety

Pobrane pakiety

Instalacja Pythona

Instalacja jest bardzo prosta, kreator poprowadzi nas przez proces; Wszystkie opcje zostawiamy domyślnie zaznaczone.

Program instalacyjny Pythona

Program instalacyjny Pythona

Jak widać na obrazku, Python instaluje się w folderze C: \ Python33 \ Domyślnie pozostawiamy to bez zmian i kontynuujemy instalację.

Folder instalacyjny Pythona

Folder instalacyjny Pythona

W tym momencie instalacji wybieramy opcję Dodaj python.exe do Path, w celu uruchomienia interpretera Pythona bez konieczności ręcznego dodawania go do ścieżki systemowej.

Dodaj język Python do ścieżki systemowej

Dodaj język Python do ścieżki systemowej

Następnie kończymy instalację i Python zostanie zainstalowany w naszym systemie.

Instalacja polany

Instalacja Glade nie stanowi większej komplikacji, uruchamiamy program instalacyjny i postępujemy zgodnie z krokami kreatora.

Zainstaluj polanę

Zainstaluj polanę

Instalacja PyGObject

Pobraliśmy pakiet pygi-aio-3.4.2rev11.7z, ten pakiet zawiera biblioteki PyGObject dla Python 3.3 i GTK + 3 dla Windows, które są skompresowane przy użyciu 7-zip, rozpakowujemy go i będziemy mieć folder z następującą zawartością:

Zawartość folderu pygi-aio-3.4.2rev11.7

Zawartość folderu pygi-aio-3.4.2rev11.7

Teraz kopiujemy folder gtk a C: \ Python33 \ Lib \ site-packages w którym są instalowane pakiety innych firm dla Pythona.

Skopiuj folder gtk

Skopiuj folder gtk

Folder Gtk w C: \ Python33 \ Lib \ site-packages

Folder Gtk w C: \ Python33 \ Lib \ site-packages

Wracamy do naszego folderu pygi-aio-3.4.2rev11 i otwieramy folder Py33 dla wersji Pythona, czyli 3.3

Zawartość folderu py33

Zawartość folderu py33

Wybieramy cała zawartość falcówka Py33 i kopiujemy go z powrotem do folderu C: \ Python33 \ Lib \ site-packages, zostaniemy poproszeni o wymieszanie i nadpisanie, odpowiadamy twierdząco. Zawartość folderu pakiety witryn byłoby tak, jak pokazano na poniższym obrazku:

Skopiuj zawartość folderu py33 do C: \ Python33 \ Lib \ site-packages

Skopiuj zawartość folderu py33 do C: \ Python33 \ Lib \ site-packages

Sprawdzenie poprawności instalacji PyGobject i GTK + 3

Aby sprawdzić, czy nasza instalacja została poprawna, otwieramy Python IDLE i importujemy biblioteki GTK + 3 i jeśli nie będziemy mieli żadnych komunikatów o błędach, wszystko będzie zrobione poprawnie.

from gi.repository import Gtk

PyGobject i GTK + 3 zostały poprawnie zainstalowane

PyGobject i GTK + 3 zostały poprawnie zainstalowane


24 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.   Joaquin powiedział

    A dlaczego GTK? Czy nie byłoby lepiej rozwijać się w QT? oprócz tego, że jest wieloplatformowy i wielu twierdzi, że to przyszłość

    1.    artus powiedział

      Cóż, dwie świetne biblioteki graficzne na pulpicie GNU / Linux to GTK i QT, każda wybiera tę, którą preferuje. Nie ma powodu do walki.

      Różnica między GTK i QT polega na tym, że ten ostatni jest frameworkiem, rzeczywiście bardzo dobrym, ale będąc frameworkiem zużywa trochę więcej zasobów.

      Na przykład Mozilla Firefox, Google Chrome, LibreOffice i długie i tak dalej są tworzone za pomocą GTK; Nie znaczy to, że jest lepszy od QT, każdy powinien wybrać taki, który odpowiada jego preferencjom i potrzebom, nie chcemy wywoływać o tym dyskusji.

      1.    pandev92 powiedział

        Google Chrome od wersji 33, zostaw gtk.

  2.   Rolo powiedział

    i dlaczego wyjaśnienie dotyczące systemu Windows, a nie Linuksa

    1.    Germán powiedział

      Czy to dlatego, że w Linuksie wszystko jest już spakowane i znajduje się w oficjalnych repozytoriach każdej dystrybucji? Na przykład w Fedorze mam już domyślnie zainstalowane Python 3, Gtk + 3 i PyGobject. Jeśli chcę Glade, to po prostu „yum install glade”. Łatwe, prawda? 🙂

    2.    artus powiedział

      Ponieważ, jak mówi Germán, dystrybucje GNU / Linux są już spakowane i bardzo łatwo je zainstalować; na przykład instalacja glade w Debianie jest bardzo prosta:
      aptitude install glade

  3.   Marcelo powiedział

    Jeśli chcę używać Pythona 2.7, czy kroki będą takie same?
    Oczywiście po zainstalowaniu 2.7-bitowego Pythona 32 (nawet jeśli używasz 64-bitowego systemu operacyjnego) i zamiast folderu py33, wersja 2.7. Czy to zadziała?
    Dziękuję.

    1.    artus powiedział

      Cóż, tak, jeśli masz problem, zostaw mi komentarz.

      Powodzenia.

      1.    Marcelo powiedział

        Dzięki, już próbowałem i na razie działa dla mnie „Hello world”.

        Widzę, czy uda mi się uzyskać dobry samouczek dotyczący pyGTK3 lub jakikolwiek inny tytuł i jakieś problemy, ostrzeżenie.

          1.    Marcelo powiedział

            Caramba! Wielkie dzięki!

          2.    Marcelo powiedział

            Testowanie GTK3 w Pythonie 2.7 w systemie Windows i postępowanie zgodnie z samouczkiem. Jak dotąd działają dla mnie wszystkie programy, z wyjątkiem tego z rozdziału 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)

            Daje mi następujący błąd:
            Traceback (ostatnie połączenie ostatnio):
            Plik „C: \ Users \ User \ Desktop \ test.py”, wiersz 24, w formacie
            win = IconViewWindow ()
            Plik „C: \ Users \ User \ Desktop \ test.py”, wiersz 19, w __init__
            pixbuf = Gtk.IconTheme.get_default (). load_icon (icon, 64, 0)
            Plik „C: \ Python27 \ lib \ site-packages \ gi \ types.py”, wiersz 47, w funkcji
            return info.invoke (* args, ** kwargs)
            GError: Ikona „gtk-cut” nie występuje w motywie

            Wypróbowałem to z innymi ikonami i też nie działa. Czy muszę zainstalować motyw? Dzięki od teraz.

          3.    Marcelo powiedział

            Podobnie jak w przykładzie 19. Przeciągnij i upuść.

            Funkcja, która wywołuje w obu przypadkach i tam pojawia się błąd:

            pixbuf = Gtk.IconTheme.get_default (). load_icon (icon_name, 16, 0)

            Nie mogę znaleźć ikony, ale w innych przykładach możesz ich użyć. Daje mi błąd tylko wtedy, gdy chcę go użyć z tą funkcją (tutaj icon_name można zastąpić wartością taką jak Gtk.STOCK_CUT lub cokolwiek i daje dokładnie ten sam błąd).

          4.    Marcelo powiedział

            Mówię do siebie. W innych przykładach działa dla mnie to, że obrazy ładują się na przyciskach. Nie mogę załadować ikon z funkcją, która występuje w dwóch przykładach, które podałem wcześniej.

          5.    artus powiedział

            Myślę, że błąd jest jasny:
            GError: Ikona „gtk-cut” nie występuje w motywie

            Najwyraźniej ta ikona nie jest dostępna, użyj innej ikony. Prawdopodobnie opiekun pakietu nie załączył ikon motywu lub nie można go znaleźć w domyślnej ścieżce, użyj dystrybucji GNU / Linux i zobacz, czy nadal pojawia się ten sam błąd.

            Jeśli chodzi o pytanie 19, wydaje się, że jest ono związane z wersją PyGobject, na górze dokumentacji jest napisane:

            Note
            Aby poniższe przykłady działały, wymagane są wersje PyGObject = 3.0.3.

            Masz wersję 3.0, wypróbuj dystrybucję GNU / Linux; a potem musimy poczekać, aż zaktualizują pakiet (dla Windows) lub w każdym razie możesz go samodzielnie skompilować.

            Pozdrowienia i idź dalej.

          6.    Marcelo powiedział

            W Ubuntu wszystkie przykłady samouczków działają idealnie dla mnie. W systemie Windows nadal nie działa. Będę musiał poczekać. Innym, który nie chodzi, jest Prządka, która nie wykonuje animacji. Pozdrawiam i dziękuję.

  4.   Joshua powiedział

    Postępowałem zgodnie z instrukcją instalacji i instalowałem wszystko krok po kroku.
    I wykonanie następującego kodu:
    z gi.repository import Gtk

    klasa FiestraPrincipal:
    def __init __ (self):
    filename = "/ data / dam / Python exemplars / Saudoform"
    constructor = Gtk.builder ()
    constructor.add_from_file (nazwa pliku)
    #dictionary, w którym odnosimy synów do wydarzeń
    sinais = {
    «ClickedAccept»: self.clic_boton,
    „ActivateTextCadro”: self.clic_boton,
    „DestroyFiestra”: Gtk.main_quit

    }
    constructor.connect_signals (sinais)
    # Otrzymujemy odniesienie do deskryptora XML, aby mieć do niego dostęp
    self.label = self.widgets_widget („Etykieta”)
    self.cadroTexto = self.widgets_widget ("CadroTexto")

    def button_click (self, widget):
    text = self.cadroTexto.get_text ()
    self.label.set_text ("wave% s"% text)

    if __name__ == »__ main__»:
    FiestraPrincipal ()
    Gtk.Main ()

    Otrzymuję tę odpowiedź:
    Traceback (ostatnie połączenie ostatnio):
    Plik «C: / Users / admin / Google Drive / test / SaudoForm.py», wiersz 3, in
    z gi.repository import Gtk
    Plik „C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py”, wiersz 27, w
    z ._gi import _API, Repozytorium
    ImportError: Ładowanie biblioteki DLL nie powiodło się:% 1 nie jest poprawną aplikacją Win32.

    Ktoś wie, na czym polega problem lub jakie może być jego możliwe rozwiązanie.
    Dziękuję bardzo.

  5.   Jezus powiedział

    Ciekawy. Zrobiłem instalację w Linuksie, ale wyjaśnienie dla Windows jest w porządku, teraz mam to w obu. 😉

  6.   Rafael Carmona powiedział

    To zabawne na 7-bitowym Windows 32 za pierwszym razem.
    Na 7-bitowym systemie Windows 64 nie mogę go uruchomić, zawsze to rozumiem;
    >>> z gi.repository import Gtk
    Traceback (ostatnie połączenie ostatnio):
    Plik «», wiersz 1, w
    Plik „C: \ Python33 \ lib \ site-packages \ gi \ __ init__.py”, wiersz 27, w
    z ._gi import _API
    ImportError: Ładowanie biblioteki DLL nie powiodło się: nie znaleziono określonego procesu.

    Próbowałem tego mimo wszystko, straciłem już złudzenie, że to instaluję.

    1.    artus powiedział

      Zobaczysz, że biblioteki 64-bitowe nadal mają pewne błędy, zainstaluj 32-bitową wersję zarówno pythona, jak i GTK +, aby nie mieć problemów.

      Nigdy nie powinieneś tracić iluzji 🙂

  7.   Richard powiedział

    Witam pracuję z pythonem + gtk3, jest bardzo dobrze teraz mam mały problem chcę zmienić ikonkę na mój formularz (okienko) w tym przypadku i mogę to zmienić, z góry dzięki, Pozdrowienia

  8.   Jors powiedział

    publikuj proste filmy pokazujące jak programować w gtk + 3 i pozdrawiam proste samouczki

  9.   Jose powiedział

    Doskonały tutorial. dziękuję bardzo za Twój wysiłek. Pozdrowienia.

  10.   jkmilo1030 powiedział

    Wykonałem wszystkie kroki i kiedy zaufałem instalacji, otrzymałem ten błąd.

    Traceback (ostatnie połączenie ostatnio):
    Plik «», wiersz 1, w
    z gi.repository import Gtk
    ImportError: brak modułu o nazwie „gi”