复合构件之消息对话框

代码;

复制代码
#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;
}

编译运行

相关推荐
橙子家1 小时前
浏览器缓存之【基础键值存储】:Local storage 和 Session storage
前端
程序员龙叔4 小时前
编写高质量 Skill 系列 -- 如何设计需求分析与用例生成的 SKILL
自动化测试·软件测试·python·软件测试工程师·接口测试·性能测试·skill·ai测试
星星在线4 小时前
MusicFree:一个「All in One」的个人音乐服务器,让听歌回归简单
前端·后端
IT_陈寒5 小时前
Redis的SETNX并发问题让我加了三天班
前端·人工智能·后端
demo007x5 小时前
Docling 文档转换以及技术架构分析
前端·后端·程序员
京东云开发者6 小时前
京东市民服务又“上新”!这次是黑龙江“龙易办”
前端
袋鱼不重6 小时前
我的神奇同事,AI 用多了居然写了个 Open In Codex
前端·后端·ai编程
用户8356290780516 小时前
使用 Python 操作 Word 内容控件
后端·python
LDR0066 小时前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术7 小时前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript