一组模板文件,用于使用Glade for GUI启动新的GTK + 3 C编程语言项目。模板目录的结构将C源代码和Glade文件分隔为它们自己的子目录,并在主目录中带有一个makefile。
通过分离C源代码和Glade文件,这些模板文件使管理项目更加容易。生成文件允许随着项目的增长轻松地将源代码文件添加到项目中。
本文使用Glade扩展了简单的GTK + 3 C编程,并通过手动输入compile命令进行了编译,将其扩展到结构更好的项目并使用了makefile。
GTK + 3 Glade模板目录的结构
该模板有一个src目录,其中包含项目的C源文件;一个glade目录,其中包含Glade文件。在生成文件是在模板的根目录中找到如下所示在图像中。
GTK + 3和Glade模板源代码
模板目录包含以下源代码,可以将其复制以为您自己的项目创建一组模板文件。
生成文件
以下是名为makefile的文件的内容,该文件必须放在项目的根目录中。
#在此处更改应用程序名称(可执行输出名称)
TARGET = template_app
#编译器
CC = gcc
#调试
调试= -g
#优化
OPT = -O0
#警告
WARN =-墙
PTHREAD = -pthread
CCFLAGS = $(调试)$(OPT)$(警告)$(PTHREAD)-管道
GTKLIB =`pkg-config --cflags --libs gtk + -3.0`
#链接器
LD = gcc
LDFLAGS = $(PTHREAD)$(GTKLIB)-导出动态
OBJS = main.o
全部:$(OBJS)
$(LD)-o $(目标)$(OBJS)$(LDFLAGS)
main.o:src / main.c
$(CC)-c $(CCFLAGS)src / main.c $(GTKLIB)-o main.o
清洁:
rm -f * .o $(目标)
将文件顶部的名称template_app更改为您的项目的名称。这将是编译后生成的可执行文件的名称。
将新的C源代码文件添加到项目中后,修改makefile,以便编译和链接新文件。
主C源代码文件
在src目录中,创建一个名为main.c的文件,并将以下代码复制到该文件。
#include <gtk / gtk.h>
int main(int argc,char * argv [])
{
GtkBuilder *构建器;
GtkWidget *窗口;
gtk_init(&argc,&argv);
// builder = gtk_builder_new();
// gtk_builder_add_from_file(builder,“ glade / window_main.glade”,NULL);
// 2019年10月更新:下面的行替换了上面的2行
builder = gtk_builder_new_from_file(“ glade / window_main.glade”);
窗口= GTK_WIDGET(gtk_builder_get_object(builder,“ window_main”));
gtk_builder_connect_signals(builder,NULL);
g_object_unref(builder);
gtk_widget_show(window);
gtk_main();
返回0;
}
//关闭窗口时调用
无效on_window_main_destroy()
{
gtk_main_quit();
}
可以将添加到项目中的所有C源代码文件放置在src目录中。项目中使用的Glade文件被放置在glade目录中,并按C源代码中的方式进行访问,如上面的代码所示。
gtk_builder_add_from_file(生成器,“ glade / window_main.glade”,NULL);
2019年10月更新:通过替换以下两行代码来简化代码:
builder = gtk_builder_new();
gtk_builder_add_from_file(生成器,“ glade / window_main.glade”,NULL);
使用以下单行代码:
builder = gtk_builder_new_from_file(“ glade / window_main.glade”);
Glade文件
新的林间空地文件可在林间空地编辑器中创建或下面的代码可以被复制到一个名为window_main.glade在林间空地目录
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.16.1 -->
<interface>
<requires lib="gtk+" version="3.10"/>
<object class="GtkWindow" id="window_main">
<property name="can_focus">False</property>
<property name="title" translatable="yes">Template Window</property>
<property name="default_width">640</property>
<property name="default_height">480</property>
<signal name="destroy" handler="on_window_main_destroy" swapped="no"/>
<child>
<placeholder/>
</child>
</object>
</interface>
构建GTK + 3 Glade C编程模板项目
打开一个终端窗口,然后转到项目目录。要构建项目,请在终端窗口中输入make。这假定已安装了正确的软件和库。
构建项目:
make
make clean
all: $(OBJS)
$(LD) -o $(TARGET) $(OBJS) $(LDFLAGS)