Въвеждане
В GNU / Linux разработването на приложения с Python 3, Glade и GTK + 3 е много лесно, пакетите идват по подразбиране в повечето дистрибуции.
Благодаря на горска поляна можем да създадем потребителски интерфейси бързо и лесно и след това да ги използваме заедно с Python. За да постигнете това, вие използвате PyGObject благодарение на системата за интроспекция, предлагана от GNOME, която значително улеснява бързото разработване на приложения (RAD); възможно е също да използваме нашите интерфейси, създадени с Glade от други езици за програмиране.
Проблемът възниква, когато искаме да използваме нашите приложения в Microsoft Windows, тъй като доскоро пакетите за тази система не съществуват официално.
С този урок се предвижда приложенията, създадени в GNU / Linux с помощта на Python 3 и GTK + 3, да работят без проблеми в Windows.
изисквания
- Python 3.3
- Gtk + 3
- Glade 3.14 или по-висока (GUI дизайнер)
- пигообект
Инсталиране на Windows
Ще започне със създаване на папка, наречена софтуер или друго по ваше предпочитание и ние ще запазим в него всички пакети, които са изтеглени.
Изтеглете инсталационните пакети
Изтеглете Python 3.3
Може да се изтегли от официалната страница на Python python.org
Като щракнете върху връзката (Windows Installer) инсталационната програма на Python ще се изтегли.
Изтеглете Glade
Сайт за изтегляне: glade.gnome.org
И версиите на Python и Glade са 32-битови, но работят без проблеми на 64-битови системи
Изтеглете PyGObject
Сайт за изтегляне: https://wiki.gnome.org/PyGObject
Трябва да изтеглим версията за GTK + 3
Инсталиране на пакетите
Ами до този момент вече имаме всички изтеглени пакети в папката софтуер и тъй като сме изтеглили всеки пакет, ще започнем първо с инсталацията на Python.
Инсталация на Python
Инсталацията е много проста, съветникът ще ни води през процеса; Оставяме всички опции, маркирани по подразбиране.
Както се вижда на изображението, Python се инсталира в папката C: \ Python33 \ По подразбиране го оставяме както е и продължаваме с инсталацията.
В този момент от инсталацията избираме опцията Добавете python.exe към Path, с цел, когато стартираме интерпретатор на Python, той се изпълнява, без да е необходимо да го добавяте ръчно към системния път.
След това завършваме инсталацията и Python ще бъде инсталиран в нашата система.
Поставяне на поляна
Инсталирането на Glade не представлява голямо усложнение, стартираме инсталационната програма и следваме стъпките на съветника.
Инсталиране на PyGObject
Бяхме изтеглили пакета pygi-aio-3.4.2rev11.7z, този пакет включва PyGObject за Python 3.3 и GTK + 3 библиотеки за Windows, който е компресиран с 7-цип, ние го разархивираме и ще имаме папка със следното съдържание:
Сега копираме папката gtk a C: \ Python33 \ Lib \ site-пакети където са инсталирани пакетите на трети страни за Python.
Връщаме се в нашата папка pygi-aio-3.4.2rev11 и ние отваряме папката py33 за версията на Python, която е 3.3
Ние избираме цялото съдържание от папката py33 и го копираме обратно в папката C: \ Python33 \ Lib \ site-пакети, ще бъдем помолени да смесим и презапишем, отговаряме утвърдително. Съдържанието на папката пакетни сайтове ще бъде както е показано на следното изображение:
Проверка на правилната инсталация на PyGobject и GTK + 3
За да проверим дали инсталацията ни е била правилна, отваряме Python IDLE и импортираме библиотеките GTK + 3 и ако нямаме съобщения за грешка, всичко ще бъде направено правилно.
from gi.repository import Gtk
И защо GTK? Не би ли било по-добре да се развива в QT? освен че е многоплатформен и мнозина казват, че това е бъдещето
Двете страхотни графични библиотеки на работния плот на GNU / Linux са GTK и QT, като всяка избира тази, която предпочита. Няма причина да се караме.
Разликата между GTK и QT е, че последната е рамка, наистина много добра, но като рамка консумира малко повече ресурси.
Например Mozilla Firefox, Google Chrome, LibreOffice и дългите etcetera са направени с GTK; Това не означава, че е по-добър от QT, всеки трябва да избере този, който отговаря на неговите предпочитания и нужди, не искаме да предизвикваме дискусия за него.
Google chrome от версия 33, оставете gtk.
и защо обяснението за windows, а не linux
Дали защото в Linux всичко вече е опаковано и в официалните хранилища на всяко дистрибуция? Например във Fedora вече имам инсталирани по подразбиране Python 3, Gtk + 3 и PyGobject. Ако искам Glade, това е просто "yum install glade". Лесно нали? 🙂
Защото, както казва Герман, за GNU / Linux дистрибуции те вече са опаковани и е много лесно да ги инсталирате; например да инсталирате glade в Debian е много просто:
aptitude инсталирайте поляна
Ако искам да използвам Python 2.7, стъпките ще бъдат ли същите?
Очевидно е, че инсталирането на 2.7-битовия Python 32 (дори ако използвате 64-битова ОС) и вместо папката py33, 2.7 ще отиде. Щеше ли да работи?
Благодаря.
Ами да, ако имате проблем, оставете ми коментар.
AXEL Advisors
Благодаря, изпробвах го и засега "Hello world" ми работи.
Виждам дали мога да получа някакъв добър урок за pyGTK3 или каквото и да се нарича и някакви проблеми, предупреждение.
урок:
https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
Карамба! Благодаря много!
Тестване на GTK3 с Python 2.7 на Windows и следване на урока. Засега всички програми работят за мен, с изключение на тази в глава 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)
Това ми дава следната грешка:
Traceback (последно последно обаждане):
Файл "C: \ Users \ User \ Desktop \ test.py", ред 24, в
win = IconViewWindow ()
Файл "C: \ Users \ User \ Desktop \ test.py", ред 19, в __init__
pixbuf = Gtk.IconTheme.get_default (). load_icon (икона, 64, 0)
Файл "C: \ Python27 \ lib \ site-пакети \ gi \ типове.py", ред 47, във функция
return info.invoke (* args, ** kwargs)
GError: Икона „gtk-cut“ не присъства в темата
Пробвах го с други икони и той също не работи. Трябва ли да инсталирам тема? Благодаря от сега.
Нито Пример 19. Плъзгане и пускане.
Функцията, която се обажда и в двата случая и именно там получавам грешка, е:
pixbuf = Gtk.IconTheme.get_default (). load_icon (име_на_икона, 16, 0)
Не мога да намеря иконата, но в други примери можете да ги използвате. Дава ми грешка само когато искам да я използвам с тази функция (тук icon_name може да бъде заменена със стойност като Gtk.STOCK_CUT или каквото и да е, и то точно същата грешка).
Продължавам да си говоря. Това, което ми работи в други примери, е, че изображенията се зареждат върху бутоните. Не мога да заредя иконите с функцията, която идва в двата примера, които дадох по-рано.
Мисля, че грешката е ясна:
GError: Икона „gtk-cut“ не присъства в темата
Очевидно тази икона не е налична, използвайте друга икона. Вероятно поддържащият пакет не включва иконите на темата или не може да бъде намерен в пътя по подразбиране, използвайте GNU / Linux дистрибуция и вижте дали същата грешка все още се появява.
Що се отнася до въпрос 19, той изглежда е свързан с версията на PyGobject, в горната част на документацията се казва:
Забележка
Версиите на PyGObject = 3.0.3 са необходими, за да работят следните примери.
Вашата версия е 3.0, опитайте GNU / Linux дистрибуция; и след това трябва да изчакаме те да актуализират пакета (за Windows) или във всеки случай можете да го компилирате сами.
Поздрави и продължи напред.
В Ubuntu всички примери за уроци работят идеално за мен. На Windows все още не работи. Ще трябва да почакам. Друг, който не ходи, е примерът на Spinner, който не прави анимацията. Поздрави и благодарности.
Следвах урока за инсталиране и инсталирах всичко стъпка по стъпка.
И изпълняване на следния код:
от gi.repository import Gtk
клас FiestraPrincipal:
def __init __ (самостоятелно):
filename = "/ data / dam / Python examples / Saudoform"
конструктор = Gtk.builder ()
constructor.add_from_file (име на файл)
#dictionary, където свързваме sinais със събитията
sinais = {
«ClickedAccept»: self.clic_boton,
"ActivateTextCadro": self.clic_boton,
"DestroyFiestra": Gtk.main_quit
}
constructor.connect_signals (sinais)
# Получаваме препратка към XML дескриптора, за да имаме достъп
self.label = self.widgets_widget ("Етикет")
self.cadroTexto = self.widgets_widget ("CadroTexto")
def button_click (самостоятелно, джаджа):
text = self.cadroTexto.get_text ()
self.label.set_text ("вълна% s"% текст)
ако __name__ == »__ main__»:
FiestraPrincipal ()
Gtk.Main ()
Получавам този отговор:
Traceback (последно последно обаждане):
Файл «C: / Users / admin / Google Drive / test / SaudoForm.py», ред 3, в
от gi.repository import Gtk
Файл "C: \ Python33 \ lib \ site-пакети \ gi \ __ init__.py", ред 27, в
от ._gi импортиране _API, хранилище
ImportError: Неуспешно зареждане на DLL:% 1 не е валидно приложение на Win32.
Някой знае какъв е проблемът или какво може да е възможното му решение.
Благодаря Ви много.
Интересно. Бях направил инсталацията в linux, но обяснението за windows е добре, сега го имам и в двата. 😉
Забавно е за 7-битов Windows 32 за първи път.
На Windows 7 64-bit не мога да го накарам да работи, винаги го получавам;
>>> от gi.repository import Gtk
Traceback (последно последно обаждане):
Файл «», ред 1, в
Файл "C: \ Python33 \ lib \ site-пакети \ gi \ __ init__.py", ред 27, в
от ._gi импортиране _API
ImportError: Неуспешно зареждане на DLL: Посоченият процес не е намерен.
Опитах го все пак възможно, вече загубих илюзията да го инсталирам.
Ще видите, че 64-битовите библиотеки все още имат някои грешки, моля, инсталирайте 32-битовата версия на python и GTK +, за да нямате проблеми.
Никога не трябва да губите илюзията 🙂
Здравейте, работя с python + gtk3, сега е много добре, имам малък проблем. Искам в този случай да сменя иконата във формата си (прозорец) и мога да я променя, благодаря предварително, Поздрави
публикувайте прости видеоклипове за това как да програмирате в gtk + 3 и прости поздравления за уроци
Отличен урок. Благодаря ви много за усилията. За разбирането.
Направих всички стъпки и когато отидох да се доверя на инсталацията, получих тази грешка.
Traceback (последно последно обаждане):
Файл «», ред 1, в
от gi.repository import Gtk
ImportError: Няма модул с име „gi“