| |
GTK+ 2.0 Tutorial |
||
---|---|---|
Разные виджеты (Miscellaneous Widgets) |
Виджет диалога очень простой, фактически это просто окно с пред упакованными виджетами. Структура диалога такова:
struct GtkDialog { GtkWindow window; GtkWidget *vbox; GtkWidget *action_area; }; |
Вы видите, что создаётся обычное окно в которое в верху упаковывается vbox, содержащий сепаратор и затем hbox вызываемый "action_area".
Виджет диалога может использоваться в качестве всплывающих сообщений для пользователя и других подобных задач. Существует две функции для создания новых диалогов:
GtkWidget *gtk_dialog_new( void ); GtkWidget *gtk_dialog_new_with_buttons( const gchar *title, GtkWindow *parent, GtkDialogFlags flags, const gchar *first_button_text, ... ); |
Первая функция создаёт пустой диалог для дальнейшего использования. Вы можете упаковать кнопку action_area примерно так:
button = ... gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->action_area), button, TRUE, TRUE, 0); gtk_widget_show (button); |
Вы также можете добавить область упаковки vbox для ярлыка:
label = gtk_label_new ("Dialogs are groovy"); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), label, TRUE, TRUE, 0); gtk_widget_show (label); |
Как пример использования можно привести окно с ярлыком содержащим некий текст и двумя кнопками для того, чтобы пользователь смог сделать выбор между "OK" и "Сancel", создав тем самым определённый сигнал для выполнения дальнейших действий.
Если простые функциональные возможности, обеспеченные вертикальными и горизонтальными контейнерами по умолчанию в этих двух областях не дают вам достаточного контроля для вашего приложения, то вы можете просто упаковать другой виджет расположения в предоставленные контейнеры. Например вы можете поместить таблицу в вертикальный контейнер.
Более сложный вариант complicated _new_with_buttons() позволяет установить один или более флагов.
Progress Bars |
Rulers |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |