十五、Gtk4-tfeapplication.c

文章详细介绍了C语言中使用Gtk4构建应用程序的基本流程,包括创建GtkApplication对象、处理启动、激活和打开信号、使用UI文件构建界面、连接按钮信号以及应用CSS样式。此外,还讨论了CSS在GTK中的应用,以及如何在不同组件中设置和管理样式。文章以一个具体的示例代码解析了整个过程,展示了如何编写和管理一个简单的文本编辑器应用。

ffeapplication.c包含了除tfetxtview.c和tfenotebook.c之外的所有代码。它:

  • 应用程序支持,主要处理命令行参数。
  • 使用ui文件构建构件。
  • 连接按钮信号及其处理程序。
  • 管理CSS。

main

函数main是C语言中第一个被调用的函数。它将用户给出的命令行与Gtk应用程序连接起来。

 1 #define APPLICATION_ID "com.github.ToshioCP.tfe"
 2
 3 int
 4 main (int argc, char **argv) {
   
   
 5   GtkApplication *app;
 6   int stat;
 7
 8   app = gtk_application_new (APPLICATION_ID, G_APPLICATION_HANDLES_OPEN);
 9
10   g_signal_connect (app, "startup", G_CALLBACK (app_startup), NULL);
11   g_signal_connect (app, "activate", G_CALLBACK (app_activate), NULL);
12   g_signal_connect (app, "open", G_CALLBACK (app_open), NULL);
13
14   stat =g_application_run (G_APPLICATION (app), argc, argv);
15   g_object_unref (app);
16   return stat;
17 }
  • 1:定义应用id。很容易找到应用程序id,而且比id嵌入gtk_application_new要好。
  • 8:创建GtkApplication对象。
  • 10-12:将"startup"、"activate"和"open"信号连接到它们的处理程序。
  • 14:运行应用。
  • 15-16:释放对应用程序的引用并返回状态。

startup signal handler

启动信号是在GtkApplication实例初始化之后发出的。信号处理程序需要做的是初始化应用程序。

  • 使用ui文件构建小构件。
  • 连接按钮信号及其处理程序。
  • 设置CSS。

处理程序如下所示。

 1 static void
 2 app_startup (GApplication *application) {
   
   
 3   GtkApplication *app = GTK_APPLICATION (application);
 4   GtkBuilder *build;
 5   GtkApplicationWindow *win;
 6   GtkNotebook *nb;
 7   GtkButton *btno;
 8   GtkButton *btnn;
 9   GtkButton *btns;
10   GtkButton *btnc;
11 
12   build = gtk_builder_new_from_resource ("/com/github/ToshioCP/tfe/tfe.ui");
13   win = GTK_APPLICATION_WINDOW (gtk_builder_get_object (build, "win"));
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值