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"));

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

被折叠的 条评论
为什么被折叠?



