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

C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
Technopark
 

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 3
it-people
 
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeans
metaform
 
ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3
it-people
 

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_egovernment
PingWin 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.2013
PingWin Software
 
презентация нпп инфофорум
презентация нпп инфофорумпрезентация нпп инфофорум
презентация нпп инфофорум
PingWin Software
 
презентация нпп V1.3
презентация нпп V1.3презентация нпп V1.3
презентация нпп V1.3
PingWin Software
 
Презентация Д.Комиссарова на LinuxCon Europe 2011
Презентация Д.Комиссарова на LinuxCon Europe 2011Презентация Д.Комиссарова на LinuxCon Europe 2011
Презентация Д.Комиссарова на LinuxCon Europe 2011
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
 
Презентация компании ПингВин Софтвер
Презентация компании ПингВин СофтверПрезентация компании ПингВин Софтвер
Презентация компании ПингВин Софтвер
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
 
Презентация компании ПингВин Софтвер
Презентация компании ПингВин СофтверПрезентация компании ПингВин Софтвер
Презентация компании ПингВин Софтвер
 

Recently uploaded

ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 

Recently uploaded (9)

ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 

Разработка 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