复合构件之消息对话框

代码;

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

编译运行

相关推荐
XXX-X-XXJ9 分钟前
三、从 MinIO 存储到 OCR 提取,再到向量索引生成
人工智能·后端·python·ocr
萌萌哒草头将军14 分钟前
尤雨溪强烈推荐的这个库你一定要知道 ⚡️⚡️⚡️
前端·vue.js·vite
Автомата Калашникова16 分钟前
Java操作.docx文档 —— docx4j
java·开发语言
2401_8784545319 分钟前
Vue 核心特性详解:计算属性、监听属性与事件交互实战指南
前端·vue.js·交互
小龙报27 分钟前
《彻底理解C语言指针全攻略(3)》
c语言·开发语言·windows·git·创业创新·学习方法·visual studio
GISer_Jing40 分钟前
Next.js数据获取演进史
java·开发语言·javascript
棉猴1 小时前
GESP C++等级认证三级15-原码反码补码2-2
开发语言·c++·gesp·c++三级·等级认证·原码反码补码
爱偷懒的。。1 小时前
基于 WebSocket 协议的实时弹幕通信机制分析-抖音
网络·python·websocket·网络协议·学习·js
1024小神1 小时前
uniapp+vue3+vite+ts+xr-frame实现ar+vr渲染踩坑记
前端
测试界清流1 小时前
基于pytest的接口测试
前端·servlet