#include <gtk/gtk.h>
static void OK(GtkWidget *widget,gpointer data)
{
g_print("OK\n");
}
static void CANCLE(GtkWidget *widget,gpointer data)
{
g_print("Cancle\n");
}
static gboolean confirm(const char *szHint)
{
GtkWidget *dialog=gtk_message_dialog_new(NULL,
GTK_DIALOG_MODAL,GTK_MESSAGE_QUESTION,
GTK_BUTTONS_YES_NO,"%s",szHint);
gtk_window_set_title(GTK_WINDOW(dialog),"提示");
gint result=gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
return (result==GTK_RESPONSE_YES);
}
static void destroy(GtkWidget *widget,gpointer data)
{
g_print("%s:exit!\n",gtk_widget_get_name(widget));
gtk_main_quit();
}
static gboolean delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
{
return !confirm("您确定退出程序?");
}
int main( int argc, char *argv[] )
{
// 声明一个窗口构件
GtkWidget *window;
GtkWidget *button;
GtkWidget *vbox;
GtkWidget *label;
//GtkWidget *hbox;
// 初始化GTK+
gtk_init (&argc, &argv);
// 创建主窗口
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
// 注册回调函数
g_signal_connect(window,"delete_event",G_CALLBACK(delete_event),NULL);
g_signal_connect(window,"destroy",G_CALLBACK(destroy),NULL);
// 设置窗口边距
gtk_container_set_border_width(GTK_CONTAINER(window),30);
//设置窗口大小
gtk_widget_set_usize(window,400,300);
// 设置控件名称
gtk_widget_set_name(GTK_WIDGET(window),"main_window");
gtk_window_set_title(GTK_WINDOW(window),"Gtk+应用程序");
//设置button在窗口的位置:中间
gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
//创建vbox容器
vbox=gtk_vbox_new(FALSE,0);
//hbox=gtk_hbox_new(TRUE,5);
// 把按钮构件添加到窗口内
gtk_container_add(GTK_CONTAINER(window),vbox);
//创建一个文本
label=gtk_label_new("这是邹力第一个GTK+程序");
gtk_box_pack_start(GTK_BOX(vbox),label,FALSE,FALSE,3);
//创建一个按钮
button=gtk_button_new_with_label("确认");
// 注册点击按钮事件的回调函数
g_signal_connect(button,"clicked",G_CALLBACK(OK),NULL);
//g_signal_connect_swapped(button,"clicked",G_CALLBACK(gtk_widget_destroy),window);
gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,3);
button=gtk_button_new_with_label("取消");
g_signal_connect(button,"clicked",G_CALLBACK(CANCLE),NULL);
gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,3);
// 显示按钮
gtk_widget_show(vbox);
// 显示窗口
gtk_widget_show_all(window);
// 进入Gtk+主循环
gtk_main();
return 0;
}

Jude
- 粉丝: 24
最新资源
- 文乐:一定要选择欧诗漫的16个理由.docx
- 监理招标文件范本.doc
- 第九章-绝热工程-定额.doc
- 关于装配式建筑的看法总结论文.pdf
- 【理论提升】-安全生产八大理论培训(30页).ppt
- 某办公楼幕墙工程测量方案.doc
- 三峡下岸溪砂石系统采场高边坡的设计与施工.doc
- 第章-墙面、地面和顶棚面层质量-.doc
- 工程档案管理作业指引.doc
- 焦化危险源辨识与风险评价信息表(02).doc
- 建设工程检测见证取样员培训(多图).ppt
- ISO14001-2015环境手册和程序文件汇编.doc
- 各种基础手算实例.docx
- 综合楼自动消防系统设计(毕业设计).doc
- 造价师考试【建设项目招投标与合同价的签订部分】.ppt
- 贵州某高层住宅临时用电施工方案.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



- 1
- 2
前往页