Наши партнеры

UnixForum





Библиотека сайта 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)
Диалог с сообщением (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)
Диалог выбора файлов (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)
Диалог выбора цвета (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)
Диалог выбора шрифта (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)
Диалог с информацией о программе (AboutDialog)

Исходный код

Файл: examplewindow.h (Для использования совместно с gtkmm 3, а не с gtkmm 2)

Файл: examplewindow.cc (Для использования совместно с gtkmm 3, а не с gtkmm 2)

Файл: main.cc (Для использования совместно с gtkmm 3, а не с gtkmm 2)


Следующий раздел : 17. Виджет области рисования.