Библиотека сайта rus-linux.net
Программирование с использованием gtkmm 3. Диалоги
Оригинал: Programming with gtkmm 3Авторы: Murray Cumming, Bernhard Rieder, Jonathon Jongsma, Ole Laursen, Marko Anastasov, Daniel Elstner, Chris Vine, David King, Pedro Ferreira, Kjell Ahlstedt
Дата публикации: 15 Октября 2013 г.
Перевод: А.Панин
Дата перевода: 15 марта 2014 г.
Диалоги используются в качестве вспомогательных окон для вывода специфической информации или для постановки вопросов. Окна на основе класса Gtk::Dialog
содержат несколько предварительно упакованных виджетов для достижения однообразия диалогов в системе и используют метод run()
, который блокируется до того момента, когда пользователь завершает взаимодействие с диалогом.
Существует несколько дочерних классов диалогов, которые могут пригодиться вам. Класс Gtk::MessageDialog
используется для создания самых простых уведомлений. Но в некоторых случаях вы можете испытать потребность в создании дочернего класса вашего диалога для реализации более сложных функций.
Для упаковки виджетов в рамках диалога специального типа вы должны помещать их в контейнер на основе класса Gtk::Box
, который может быть получен с помощью метода get_dialog_area()
. Для простого добавления кнопки в нижнюю часть диалога вам следует использовать метод add_button()
.
Метод run()
возвращает целочисленное значение типа int
. Это может быть либо значение типа Gtk::ResponseType
в том случае, если пользователь закрыл диалог путем нажатия на стандартную кнопку, либо нестандартное значение, которое может быть задано вами при использовании метода add_button()
.
16.1. Диалог с сообщением (MessageDialog)
Класс диалога с сообщением (Gtk::MessageDialog
) является специальным классом для создания простых, стандартизированных диалогов с сообщением, иконкой и кнопками для взаимодействия с пользователем. Вы можете задать тип сообщения и текст при использовании конструктора, а также указать стандартные кнопки с помощью энумератора Gtk::ButtonsType
.
16.1.1. Пример
Рисунок 16-1: Диалог с сообщением (MessageDialog)
Файл: examplewindow.h
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: examlpewindow.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: main.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
16.2. Диалог выбора файлов (FileChooserDialog)
Диалог выбора файлов (реализованный в рамках класса Gtk::FileChooserDialog
) подходит для реализации функций элементов меню "Открыть" или "Сохранить".
Большинство полезных методов данного класса на самом деле реализовано в рамках базового класса Gtk::FileChooser
.
16.2.1. Пример
Рисунок 16-2: Диалог выбора файлов (FileChooser)
Файл: examplewindow.h
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: examplewindow.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: main.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
16.3. Диалог выбора цвета (ColorChooserDialog)
Диалог выбора цвета (представленный классом Gtk::ColorChooserDialog
) позволяет пользователю выбрать цвет. Виджет кнопки выбора цвета (представленный классом Gtk::ColorButton
) позволяет открыть диалог выбора цвета при нажатии.
16.3.1. Пример
Рисунок 16-3: Диалог выбора цвета (ColorChooserDialog)
Файл: examplewindow.h
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: examplewindow.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: main.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
16.4. Диалог выбора шрифта (FontChooserDialog)
Диалог выбора шрифта (представленный классом Gtk::FontChooserDialog
) позволяет пользователю выбрать шрифт. Виджет кнопки выбора шрифта (представленный классом Gtk::FontButton
) открывает диалог выбора шрифта при нажатии.
16.4.1. Пример
Рисунок 16-4: Диалог выбора шрифта (FontChooserDialog)
Файл: examplewindow.h
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: examplewindow.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: main.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
16.5. Немодальный диалог с информацией о программе (AboutDialog)
Диалог с информацией о программе (представленный классом Gtk::AboutDialog
) позволяет упростить вывод такой информации о программе, как ее логотип, название, список авторов, вебсайт и текст лицензии.
Большинство описанных в данной главе диалогов являются модальными, то есть они предотвращают взаимодействие пользователя с остальными окнами программы в момент работы. При этом также имеется возможность создания немодального диалога, который не предотвращает взаимодействие пользователя с остальными окнами программы. В следующем примере показан немодальный диалог с информацией о программе. Вероятно, это не тот тип диалога, который вы сделали бы немодальным в нормальных условиях, но немодальные диалоги могут быть весьма полезны в других случаях. Примером может служить диалог поиска и замены из старых версий приложения gedit, который являлся немодальным.
16.5.1. Пример
Рисунок 16-5: Диалог с информацией о программе (AboutDialog)
Файл: examplewindow.h
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: examplewindow.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: main.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Следующий раздел : 17. Виджет области рисования.