GTK+图形化应用程序开发学习笔记(十二)—对话框构件、标尺构件(1)
来源:互联网 发布:程序员 美少女 动漫 编辑:程序博客网 时间:2024/05/22 10:58
一、对话框构件
对话框构件非常简单,事实上它仅仅是一个预先组装了几个构件到里面的窗口。对话框的定义如下:
struct GtkDialog{
GtkWindow window;
GtkWidget *vbox;
GtkWidget *action_area;
};
从上面可以看到,对话框只是简单地创建一个窗口,并在顶部组装一个G t k V B o x,然后在G t k V B o x中组装一个分隔线,再加一个称为“活动区”的G t k H B o x。我们可以在该“活动区”添加一些按纽。
对话框用gtk_dialog_new创建。
1.
名称::
gtk_dialog_new
功能:
创建对话框构件
头文件:
#include <gtk/gtk.h>
函数原形:
GtkWidget *gtk_dialog_new(void);
参数:
无
返回值:
新的对话框构件
#include <gtk/gtk.h>
void button_event(GtkWidget *widget, gpointer *data);
void destroy(GtkWidget *widget, gpointer *data);
int main(int argc,char *argv[ ])
{
GtkWidget *window;
GtkWidget *button;
gtk_init(&argc,&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window),”destroy”,G_CALLBACK(gtk_main_quit),NULL);
button=gtk_button_new_with_label(“Exit”);
gtk_container_add(GTK_CONTAINER(window),button);
gtk_signal_connect(GTK_OBJECT(button),”clicked”,G_CALLBACK(button_event),NULL);
gtk_widget_show(button);
gtk_widget_show(window);
gtk_main();
}
void button_event(GtkWidget *widget, gpointer *data)
{
GtkWidget *button;
GtkWidget *dialog;
dialog=gtk_dialog_new( );
button=gtk_button_new_with_label(“Yes”);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),button,TRUE,TRUE,0);
gtk_signal_connect(GTK_OBJECT(button),”clicked”,G_CALLBACK(gtk_main_quit),NULL);
gtk_widget_show(button);
button=gtk_button_new_with_label(“No”);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),button,TRUE,TRUE,0);
gtk_signal_connect(GTK_OBJECT(button),”clicked”,G_CALLBACK(destroy),dialog);
gtk_widget_show(button);
gtk_widget_show(dialog);
}
void destroy(GtkWidget *widget, gpointer *data)
{
gtk_widget_destroy(GTK_WIDGET(data));
}
程序运行后会得到如下界面:
当用户点击按纽会得到如下对话框。
如果用户电击Yes程序退出,如果用户点击No对话框消失。
- GTK+图形化应用程序开发学习笔记(十二)—对话框构件、标尺构件(1)
- GTK+图形化应用程序开发学习笔记(十二)—对话框构件、标尺构件(2)
- GTK+图形化应用程序开发学习笔记(十二)—对话框构件、标尺构件
- GTK+图形化应用程序开发学习笔记(十二)—对话框构件、标尺构件
- 【GTK】GTK+图形化应用程序开发学习笔记(七)—标签构件.事件盒构件
- GTK+图形化应用程序开发学习笔记(七)—标签构件.事件盒构件
- GTK+图形化应用程序开发学习笔记(十七)—框架构件、比例框架构件
- GTK+图形化应用程序开发学习笔记(十八)—滚动窗口构件、分栏窗口构件
- GTK+图形化应用程序开发学习笔记(十九)—按钮盒构件、笔记本构件
- GTK+图形化应用程序开发学习笔记(七)—标签构件.事件盒构件
- GTK+图形化应用程序开发学习笔记(七)—标签构件.事件盒构件
- GTK+图形化应用程序开发学习笔记(十七)—框架构件、比例框架构件
- GTK+图形化应用程序开发学习笔记(十八)—滚动窗口构件、分栏窗口构件
- GTK+图形化应用程序开发学习笔记(十九)—按钮盒构件、笔记本构件
- GTK+图形化应用程序开发学习笔记(七)—标签构件.事件盒构件(1)
- GTK+图形化应用程序开发学习笔记(四)—容器.构件(1)
- GTK+图形化应用程序开发学习笔记(八)—录入构件(1)
- GTK+图形化应用程序开发学习笔记(十三)—微调构件(1)
- Emacs 中文手册
- 解析RootKit与反RootKit
- 写给女生的句句名言
- 直接向视频缓冲区输出
- 标题: 请教怎么改Xwindow和fvwm的刷新率?
- GTK+图形化应用程序开发学习笔记(十二)—对话框构件、标尺构件(1)
- eclipse插件
- GTK+图形化应用程序开发学习笔记(十二)—对话框构件、标尺构件(2)
- 奥瑞考与啥
- C#中父窗口和子窗口之间实现控件互操作
- 精妙Sql语句
- 无关对错
- SecureCRT设置
- GTK+图形化应用程序开发学习笔记(十三)—微调构件(1)