SlideShare a Scribd company logo
1 of 12
Download to read offline
Разработка графических
  приложений на GTK+
_____________________________________
             Николай Ходов
GtkBuilder vs. PyGTK vs. Libglade
____________________________________________

 ● PyGTK - внешняя библиотека для ручного формирования интерфейса
   в коде

 ● Libglade – внешняя библиотека для для динамической отрисовки
   интерфейса ”на лету”

 ● GtkBuilder – cтандартная библиотека из GTK+

    ○ Похожа на Libglade

    ○ Пересмотрена внутренняя архитектура и уменьшает зависимость
      приложений

    ○ Рекомендуема для использования
Подготовка среды разработки
_________________________________________




 sudo apt-get install glade python-gtk2
Основные принципы
____________________________

 ● Использует принцип ”упаковки” в контейнеры (packing)

 ● Не позволяет позиционировать элементы мышкой:

    ○ Непривычно – и это путает в начале

    ○ Уменьшает сложность редизайна

    ○ Позволяет создавать интерфейс, а не заниматься pixel-hunting'ом

 ● Разработчик может управлять схемой упаковки
Упаковка
_____________


Свойства для контейнера:

 ● Homogeneous – дочерние объекты в контейнере получают
   одинаковое пространство

Свойства для дочерних объектов:

 ● Fill – объект полностью заполняет предоставленное пространство



 ● Expand – объект использует все предоставленное пространство
Homogeneous
Fill = True
Fill = False
Expand
1. подключение библиотеки GTK+




                       2. подгрузка
                       описания
                       интерфейса




                     3. обработчики сигналов
              4. показ окна и запуск
              основного цикла

    Python Script
вопросы?
____________________________

nhodov@gmail.com

More Related Content

Viewers also liked

NativeScript Developer Day Keynote - Todd Anglin & Burke Holland
NativeScript Developer Day Keynote - Todd Anglin & Burke HollandNativeScript Developer Day Keynote - Todd Anglin & Burke Holland
NativeScript Developer Day Keynote - Todd Anglin & Burke HollandBrian Rinaldi
 
Представление графов в памяти компьютера (c++).
Представление графов в памяти компьютера (c++).Представление графов в памяти компьютера (c++).
Представление графов в памяти компьютера (c++).Olga Maksimenkova
 
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptIntroduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptLohith Goudagere Nagaraj
 
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5Technopark
 
Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)Olga Maksimenkova
 
Абстрактные типы данных. Списки
Абстрактные типы данных. СпискиАбстрактные типы данных. Списки
Абстрактные типы данных. СпискиOlga Maksimenkova
 

Viewers also liked (7)

NativeScript Developer Day Keynote - Todd Anglin & Burke Holland
NativeScript Developer Day Keynote - Todd Anglin & Burke HollandNativeScript Developer Day Keynote - Todd Anglin & Burke Holland
NativeScript Developer Day Keynote - Todd Anglin & Burke Holland
 
Представление графов в памяти компьютера (c++).
Представление графов в памяти компьютера (c++).Представление графов в памяти компьютера (c++).
Представление графов в памяти компьютера (c++).
 
NativeScript + Push Notifications
NativeScript + Push NotificationsNativeScript + Push Notifications
NativeScript + Push Notifications
 
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptIntroduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
 
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
 
Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)
 
Абстрактные типы данных. Списки
Абстрактные типы данных. СпискиАбстрактные типы данных. Списки
Абстрактные типы данных. Списки
 

Similar to Разработка GUI на GTK (Николай Ходов)

Михаил Коробов: Как перейти на Python 3
Михаил Коробов: Как перейти на Python 3Михаил Коробов: Как перейти на Python 3
Михаил Коробов: Как перейти на Python 3it-people
 
Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)IT-Доминанта
 
Internationalization and localization of the python applications with gettext...
Internationalization and localization of the python applications with gettext...Internationalization and localization of the python applications with gettext...
Internationalization and localization of the python applications with gettext...Volodymyr Hotsyk
 
Программирование под Maemo
Программирование под MaemoПрограммирование под Maemo
Программирование под Maemodmitryml
 
Egor Fedorov "Behavior-driven development in Python"
Egor Fedorov "Behavior-driven development in Python"Egor Fedorov "Behavior-driven development in Python"
Egor Fedorov "Behavior-driven development in Python"Fwdays
 
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansmetaform
 
ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3it-people
 
Mixing c++ and python
Mixing c++ and pythonMixing c++ and python
Mixing c++ and pythoncorehard_by
 
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»SpbDotNet Community
 

Similar to Разработка GUI на GTK (Николай Ходов) (12)

Михаил Коробов: Как перейти на Python 3
Михаил Коробов: Как перейти на Python 3Михаил Коробов: Как перейти на Python 3
Михаил Коробов: Как перейти на Python 3
 
Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)Разработка декстопных приложений для linux (Владимир Яковлев)
Разработка декстопных приложений для linux (Владимир Яковлев)
 
Git for you
Git for youGit for you
Git for you
 
Internationalization and localization of the python applications with gettext...
Internationalization and localization of the python applications with gettext...Internationalization and localization of the python applications with gettext...
Internationalization and localization of the python applications with gettext...
 
Программирование под Maemo
Программирование под MaemoПрограммирование под Maemo
Программирование под Maemo
 
Jupyter - дополнительные главы
Jupyter - дополнительные главыJupyter - дополнительные главы
Jupyter - дополнительные главы
 
Лекция 1. Введение в Android.
Лекция 1. Введение в Android.Лекция 1. Введение в Android.
Лекция 1. Введение в Android.
 
Egor Fedorov "Behavior-driven development in Python"
Egor Fedorov "Behavior-driven development in Python"Egor Fedorov "Behavior-driven development in Python"
Egor Fedorov "Behavior-driven development in Python"
 
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeans
 
ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3
 
Mixing c++ and python
Mixing c++ and pythonMixing c++ and python
Mixing c++ and python
 
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
 

More from PingWin Software

Social effect from_egovernment
Social effect from_egovernmentSocial effect from_egovernment
Social effect from_egovernmentPingWin Software
 
Open technologies for_information_society_presentation_15.05.2013
Open technologies for_information_society_presentation_15.05.2013Open technologies for_information_society_presentation_15.05.2013
Open technologies for_information_society_presentation_15.05.2013PingWin Software
 
презентация нпп инфофорум
презентация нпп инфофорумпрезентация нпп инфофорум
презентация нпп инфофорумPingWin Software
 
презентация нпп V1.3
презентация нпп V1.3презентация нпп V1.3
презентация нпп V1.3PingWin Software
 
Презентация Д.Комиссарова на LinuxCon Europe 2011
Презентация Д.Комиссарова на LinuxCon Europe 2011Презентация Д.Комиссарова на LinuxCon Europe 2011
Презентация Д.Комиссарова на LinuxCon Europe 2011PingWin Software
 
План реализации проекта НПП В.Рубанов
План реализации проекта НПП В.Рубанов План реализации проекта НПП В.Рубанов
План реализации проекта НПП В.Рубанов PingWin Software
 
Национальная программная платформа выступление Д.Комиссарова на пресс-конфе...
Национальная программная платформа   выступление Д.Комиссарова на пресс-конфе...Национальная программная платформа   выступление Д.Комиссарова на пресс-конфе...
Национальная программная платформа выступление Д.Комиссарова на пресс-конфе...PingWin Software
 
Стратегия РАСПО (Российской Ассоциации Свободного Программного Обеспечения)
Стратегия РАСПО (Российской Ассоциации Свободного Программного Обеспечения)Стратегия РАСПО (Российской Ассоциации Свободного Программного Обеспечения)
Стратегия РАСПО (Российской Ассоциации Свободного Программного Обеспечения)PingWin Software
 
Mandriva 2011 – свободная операционная система (Владимир Крюков, Mandriva/РОСА)
Mandriva 2011 – свободная операционная система (Владимир Крюков, Mandriva/РОСА)Mandriva 2011 – свободная операционная система (Владимир Крюков, Mandriva/РОСА)
Mandriva 2011 – свободная операционная система (Владимир Крюков, Mandriva/РОСА)PingWin Software
 
Реалии внедрения свободного ПО (Вячеслав Калошин, ПингВин Софтвер)
Реалии внедрения свободного ПО (Вячеслав Калошин, ПингВин Софтвер)Реалии внедрения свободного ПО (Вячеслав Калошин, ПингВин Софтвер)
Реалии внедрения свободного ПО (Вячеслав Калошин, ПингВин Софтвер)PingWin Software
 
Пользовательский интерфейс операционной системы РОСА (Кирилл Монахов, Mandriv...
Пользовательский интерфейс операционной системы РОСА (Кирилл Монахов, Mandriv...Пользовательский интерфейс операционной системы РОСА (Кирилл Монахов, Mandriv...
Пользовательский интерфейс операционной системы РОСА (Кирилл Монахов, Mandriv...PingWin Software
 
Поддержка пользователей силами Community (Влад Животнев, Ubuntu Loco Team)
Поддержка пользователей силами Community (Влад Животнев, Ubuntu Loco Team)Поддержка пользователей силами Community (Влад Животнев, Ubuntu Loco Team)
Поддержка пользователей силами Community (Влад Животнев, Ubuntu Loco Team)PingWin Software
 
Национальная программная платформа 2.0
Национальная программная платформа 2.0Национальная программная платформа 2.0
Национальная программная платформа 2.0PingWin Software
 
Презентация компании ПингВин Софтвер
Презентация компании ПингВин СофтверПрезентация компании ПингВин Софтвер
Презентация компании ПингВин СофтверPingWin Software
 

More from PingWin Software (16)

Social effect from_egovernment
Social effect from_egovernmentSocial effect from_egovernment
Social effect from_egovernment
 
Open technologies for_information_society_presentation_15.05.2013
Open technologies for_information_society_presentation_15.05.2013Open technologies for_information_society_presentation_15.05.2013
Open technologies for_information_society_presentation_15.05.2013
 
презентация нпп инфофорум
презентация нпп инфофорумпрезентация нпп инфофорум
презентация нпп инфофорум
 
презентация нпп V1.3
презентация нпп V1.3презентация нпп V1.3
презентация нпп V1.3
 
мтс
мтс  мтс
мтс
 
Презентация Д.Комиссарова на LinuxCon Europe 2011
Презентация Д.Комиссарова на LinuxCon Europe 2011Презентация Д.Комиссарова на LinuxCon Europe 2011
Презентация Д.Комиссарова на LinuxCon Europe 2011
 
LinuxCon Europe
LinuxCon EuropeLinuxCon Europe
LinuxCon Europe
 
План реализации проекта НПП В.Рубанов
План реализации проекта НПП В.Рубанов План реализации проекта НПП В.Рубанов
План реализации проекта НПП В.Рубанов
 
Национальная программная платформа выступление Д.Комиссарова на пресс-конфе...
Национальная программная платформа   выступление Д.Комиссарова на пресс-конфе...Национальная программная платформа   выступление Д.Комиссарова на пресс-конфе...
Национальная программная платформа выступление Д.Комиссарова на пресс-конфе...
 
Стратегия РАСПО (Российской Ассоциации Свободного Программного Обеспечения)
Стратегия РАСПО (Российской Ассоциации Свободного Программного Обеспечения)Стратегия РАСПО (Российской Ассоциации Свободного Программного Обеспечения)
Стратегия РАСПО (Российской Ассоциации Свободного Программного Обеспечения)
 
Mandriva 2011 – свободная операционная система (Владимир Крюков, Mandriva/РОСА)
Mandriva 2011 – свободная операционная система (Владимир Крюков, Mandriva/РОСА)Mandriva 2011 – свободная операционная система (Владимир Крюков, Mandriva/РОСА)
Mandriva 2011 – свободная операционная система (Владимир Крюков, Mandriva/РОСА)
 
Реалии внедрения свободного ПО (Вячеслав Калошин, ПингВин Софтвер)
Реалии внедрения свободного ПО (Вячеслав Калошин, ПингВин Софтвер)Реалии внедрения свободного ПО (Вячеслав Калошин, ПингВин Софтвер)
Реалии внедрения свободного ПО (Вячеслав Калошин, ПингВин Софтвер)
 
Пользовательский интерфейс операционной системы РОСА (Кирилл Монахов, Mandriv...
Пользовательский интерфейс операционной системы РОСА (Кирилл Монахов, Mandriv...Пользовательский интерфейс операционной системы РОСА (Кирилл Монахов, Mandriv...
Пользовательский интерфейс операционной системы РОСА (Кирилл Монахов, Mandriv...
 
Поддержка пользователей силами Community (Влад Животнев, Ubuntu Loco Team)
Поддержка пользователей силами Community (Влад Животнев, Ubuntu Loco Team)Поддержка пользователей силами Community (Влад Животнев, Ubuntu Loco Team)
Поддержка пользователей силами Community (Влад Животнев, Ubuntu Loco Team)
 
Национальная программная платформа 2.0
Национальная программная платформа 2.0Национальная программная платформа 2.0
Национальная программная платформа 2.0
 
Презентация компании ПингВин Софтвер
Презентация компании ПингВин СофтверПрезентация компании ПингВин Софтвер
Презентация компании ПингВин Софтвер
 

Разработка GUI на GTK (Николай Ходов)

  • 1. Разработка графических приложений на GTK+ _____________________________________ Николай Ходов
  • 2. GtkBuilder vs. PyGTK vs. Libglade ____________________________________________ ● PyGTK - внешняя библиотека для ручного формирования интерфейса в коде ● Libglade – внешняя библиотека для для динамической отрисовки интерфейса ”на лету” ● GtkBuilder – cтандартная библиотека из GTK+ ○ Похожа на Libglade ○ Пересмотрена внутренняя архитектура и уменьшает зависимость приложений ○ Рекомендуема для использования
  • 4.
  • 5. Основные принципы ____________________________ ● Использует принцип ”упаковки” в контейнеры (packing) ● Не позволяет позиционировать элементы мышкой: ○ Непривычно – и это путает в начале ○ Уменьшает сложность редизайна ○ Позволяет создавать интерфейс, а не заниматься pixel-hunting'ом ● Разработчик может управлять схемой упаковки
  • 6. Упаковка _____________ Свойства для контейнера: ● Homogeneous – дочерние объекты в контейнере получают одинаковое пространство Свойства для дочерних объектов: ● Fill – объект полностью заполняет предоставленное пространство ● Expand – объект использует все предоставленное пространство
  • 11. 1. подключение библиотеки GTK+ 2. подгрузка описания интерфейса 3. обработчики сигналов 4. показ окна и запуск основного цикла Python Script