Введення
У GNU / Linux розробка додатків з Python 3, Glade та GTK + 3 дуже проста, пакети поставляються за замовчуванням у більшості дистрибутивів.
Gracias Поляна ми можемо швидко і легко створювати користувальницькі інтерфейси, а потім використовувати їх спільно з Python. Для досягнення цього ви використовуєте PyGObject завдяки системі самоаналізу, запропонованій GNOME, що значно полегшує швидку розробку додатків (RAD); також можна використовувати наші інтерфейси, створені з Glade з інших мов програмування.
Проблема виникає, коли ми хочемо використовувати наші програми в Microsoft Windows, оскільки донедавна офіційних пакетів для цієї системи не існувало.
У цьому посібнику передбачається, що програми, створені в GNU / Linux за допомогою Python 3 та GTK + 3, працюють без проблем у Windows.
Вимоги
- Python 3.3
- Gtk + 3
- Glade 3.14 або вище (дизайнер графічного інтерфейсу)
- pygoobject
Встановлення на Windows
Почнеться зі створення папки з назвою програмне забезпечення або інший за вашим уподобанням, і ми збережемо в ньому всі завантажені пакети.
Завантажте інсталяційні пакети
Завантажте Python 3.3
Її можна завантажити з офіційної сторінки Python www.python.org
Клацнувши на посилання (Windows Installer) програма завантаження Python завантажиться.
Завантажити Поляна
Завантажити сайт: 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-Zip, ми розпаковуємо його, і у нас буде папка з таким вмістом:
Тепер ми копіюємо папку 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 дуже просто:
здібність встановити галявину
Якщо я хочу скористатися Python 2.7, чи будуть кроки однаковими?
Очевидно, що встановлення 2.7-розрядного Python 32 (навіть якщо ви використовуєте 64-розрядну ОС) і замість папки py33 піде 2.7. Це спрацювало б?
Спасибо.
Ну так, якщо у вас є проблема, залиште мені коментар.
Удача.
Дякую, я спробував, і наразі для мене працює "Привіт світ".
Я бачу, чи отримаю я якийсь хороший навчальний посібник з 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 \ types.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 це все ще не працює. Мені доведеться почекати. Іншим, хто не ходить, є приклад Спінера, який не займається анімацією. Вітаю та дякую.
Я дотримувався підручника з встановлення та встановлював все поетапно.
І виконуючи наступний код:
з gi.repository import Gtk
клас Fiestra
def __init __ (self):
filename = "/ data / dam / Python samplers / 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 import _API, Repository
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'