Download - Разработка GUI на GTK (Николай Ходов)
![Page 1: Разработка GUI на GTK (Николай Ходов)](https://reader035.vdocuments.net/reader035/viewer/2022081803/548582a8b4af9f780d8b4e23/html5/thumbnails/1.jpg)
Разработка графических приложений на GTK+
Николай Ходов_____________________________________
![Page 2: Разработка GUI на GTK (Николай Ходов)](https://reader035.vdocuments.net/reader035/viewer/2022081803/548582a8b4af9f780d8b4e23/html5/thumbnails/2.jpg)
GtkBuilder vs. PyGTK vs. Libglade
● PyGTK - внешняя библиотека для ручного формирования интерфейса в коде
● Libglade – внешняя библиотека для для динамической отрисовки интерфейса ”на лету”
● GtkBuilder – cтандартная библиотека из GTK+
○ Похожа на Libglade
○ Пересмотрена внутренняя архитектура и уменьшает зависимость приложений
○ Рекомендуема для использования
____________________________________________
![Page 3: Разработка GUI на GTK (Николай Ходов)](https://reader035.vdocuments.net/reader035/viewer/2022081803/548582a8b4af9f780d8b4e23/html5/thumbnails/3.jpg)
Подготовка среды разработки
sudo apt-get install glade python-gtk2
_________________________________________
![Page 4: Разработка GUI на GTK (Николай Ходов)](https://reader035.vdocuments.net/reader035/viewer/2022081803/548582a8b4af9f780d8b4e23/html5/thumbnails/4.jpg)
![Page 5: Разработка GUI на GTK (Николай Ходов)](https://reader035.vdocuments.net/reader035/viewer/2022081803/548582a8b4af9f780d8b4e23/html5/thumbnails/5.jpg)
Основные принципы
● Использует принцип ”упаковки” в контейнеры (packing)
● Не позволяет позиционировать элементы мышкой:
○ Непривычно – и это путает в начале
○ Уменьшает сложность редизайна
○ Позволяет создавать интерфейс, а не заниматься pixel-hunting'ом
● Разработчик может управлять схемой упаковки
____________________________
![Page 6: Разработка GUI на GTK (Николай Ходов)](https://reader035.vdocuments.net/reader035/viewer/2022081803/548582a8b4af9f780d8b4e23/html5/thumbnails/6.jpg)
Упаковка
Свойства для контейнера:
● Homogeneous – дочерние объекты в контейнере получают одинаковое пространство
Свойства для дочерних объектов:
● Fill – объект полностью заполняет предоставленное пространство
● Expand – объект использует все предоставленное пространство
_____________
![Page 7: Разработка GUI на GTK (Николай Ходов)](https://reader035.vdocuments.net/reader035/viewer/2022081803/548582a8b4af9f780d8b4e23/html5/thumbnails/7.jpg)
Homogeneous
![Page 8: Разработка GUI на GTK (Николай Ходов)](https://reader035.vdocuments.net/reader035/viewer/2022081803/548582a8b4af9f780d8b4e23/html5/thumbnails/8.jpg)
Fill = True
![Page 9: Разработка GUI на GTK (Николай Ходов)](https://reader035.vdocuments.net/reader035/viewer/2022081803/548582a8b4af9f780d8b4e23/html5/thumbnails/9.jpg)
Fill = False
![Page 10: Разработка GUI на GTK (Николай Ходов)](https://reader035.vdocuments.net/reader035/viewer/2022081803/548582a8b4af9f780d8b4e23/html5/thumbnails/10.jpg)
Expand
![Page 11: Разработка GUI на GTK (Николай Ходов)](https://reader035.vdocuments.net/reader035/viewer/2022081803/548582a8b4af9f780d8b4e23/html5/thumbnails/11.jpg)
Python Script
1. подключение библиотеки GTK+
2. подгрузка описания интерфейса
3. обработчики сигналов
4. показ окна и запуск основного цикла
![Page 12: Разработка GUI на GTK (Николай Ходов)](https://reader035.vdocuments.net/reader035/viewer/2022081803/548582a8b4af9f780d8b4e23/html5/thumbnails/12.jpg)
____________________________вопросы[email protected]