Fork me on Gitee

GTK + 3 Glade C编程模板文件

 

一组模板文件,用于使用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)


感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接
posted @   ---dgw博客  阅读(972)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理
历史上的今天:
2018-01-05 java专业术语
点击右上角即可分享
微信分享提示
CONTENTS