复合构件之消息对话框

代码;

复制代码
#include <gtk-2.0/gtk/gtk.h>
static void font_dialog_response(GtkFontSelectionDialog *dialog,
                                       gint response,
                                       gpointer data)
                                        	// 处理字体选择对话框按钮按下事件
{
   gchar *font;
   GtkWidget *message;
   switch (response) {
   case (GTK_RESPONSE_APPLY):
   case (GTK_RESPONSE_OK):		// 当gtk-apply或gtk-ok按钮按下时处理
      font = gtk_font_selection_dialog_get_font_name(dialog);
       								// 获取字体选择对话框所选择字体名
      message = gtk_message_dialog_new(NULL,
                                              GTK_DIALOG_MODAL,
                                              GTK_MESSAGE_INFO,
                                              GTK_BUTTONS_OK,
                                              font);	// 创建一个新对话框显示字体名
      gtk_window_set_title(GTK_WINDOW(message),"所选择字体");
      gtk_dialog_run(GTK_DIALOG(message));
      gtk_widget_destroy(message);
      g_free(font);
      break;
   default:
      gtk_widget_destroy(GTK_WIDGET(dialog));	// 删除字体选择对话框
   }
   if (response == GTK_RESPONSE_OK)
      gtk_widget_destroy(GTK_WIDGET(dialog));
   gtk_main_quit();								// 退出GTK+主循环
}
int main(int argc, char *argv[]) {
   gtk_init(&argc, &argv);
   GtkWidget *dialog;
   dialog = gtk_font_selection_dialog_new ("请选择字体");
   												// 创建字体选择对话框
   gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG 	(dialog),
                                         "Sans Bold Italic 12");
                                          	// 设置对话框字体名
   gtk_font_selection_dialog_set_preview_text (  GTK_FONT_SELECTION_DIALOG (dialog),
                                           "感受GTK+开发的乐趣");
                                            	// 设置字体预览文本
   g_signal_connect(G_OBJECT (dialog), "response",
                        G_CALLBACK (font_dialog_response),
	                        NULL);				// 监听对话框中按钮按下事件
   gtk_widget_show_all(dialog);
   gtk_main();
   return 0;
}

编译运行

相关推荐
whltaoin1 分钟前
Java 后端与 AI 融合:技术路径、实战案例与未来趋势
java·开发语言·人工智能·编程思想·ai生态
@大迁世界1 分钟前
第03章: Vue 3 组合式函数深度指南
前端·javascript·vue.js·前端框架·ecmascript
小白64025 分钟前
前端梳理体系从常问问题去完善-框架篇(react生态)
前端·css·html·reactjs
Hy行者勇哥5 分钟前
数据中台的数据源与数据处理流程
大数据·前端·人工智能·学习·个人开发
wjs20249 分钟前
jEasyUI 自定义窗口工具栏
开发语言
JarvanMo13 分钟前
Riverpod 3.0 关键变化与实战用法
前端
二十雨辰22 分钟前
vite与ts的结合
开发语言·前端·vue.js
xiaohanbao0922 分钟前
Transformer架构与NLP词表示演进
python·深度学习·神经网络
我是日安25 分钟前
从零到一打造 Vue3 响应式系统 Day 25 - Watch:清理 SideEffect
前端·javascript·vue.js
岁月宁静26 分钟前
AI 时代,每个程序员都该拥有个人提示词库:从效率工具到战略资产的蜕变
前端·人工智能·ai编程