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
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
Pobierz PyGObject
Witryna pobierania: https://wiki.gnome.org/PyGObject
Musimy pobrać wersję dla GTK + 3
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.
Instalacja Pythona
Instalacja jest bardzo prosta, kreator poprowadzi nas przez proces; Wszystkie opcje zostawiamy domyślnie zaznaczone.
Jak widać na obrazku, Python instaluje się w folderze C: \ Python33 \ Domyślnie pozostawiamy to bez zmian i kontynuujemy instalację.
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.
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.
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ą:
Teraz kopiujemy folder gtk a C: \ Python33 \ Lib \ site-packages w którym są instalowane pakiety innych firm dla Pythona.
Wracamy do naszego folderu pygi-aio-3.4.2rev11 i otwieramy folder Py33 dla wersji Pythona, czyli 3.3
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:
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
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ść
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.
Google Chrome od wersji 33, zostaw gtk.
i dlaczego wyjaśnienie dotyczące systemu Windows, a nie Linuksa
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? 🙂
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
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ę.
Cóż, tak, jeśli masz problem, zostaw mi komentarz.
Powodzenia.
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.
Poradnik:
https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
Caramba! Wielkie dzięki!
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.
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).
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.
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.
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ę.
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.
Ciekawy. Zrobiłem instalację w Linuksie, ale wyjaśnienie dla Windows jest w porządku, teraz mam to w obu. 😉
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ę.
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 🙂
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
publikuj proste filmy pokazujące jak programować w gtk + 3 i pozdrawiam proste samouczki
Doskonały tutorial. dziękuję bardzo za Twój wysiłek. Pozdrowienia.
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”