GTK3学习笔记1

1、前言

GTK3是GTK的较新版本,但系统性的教程和笔记不多,下面是我从自己新浪博客转来的笔记。希望这次能把学习过程写的完整和持久些。

这次的笔记不同于之前关于GTK2的,抛弃Linux,只以Windows为工作环境。

工具:Win8.1 + Code::blocks13.12 (自带Mingw) + GTK3.6.4

2、安装GTK3

安装部分参考这篇博客,所不同之处在于要下载gtk3的最新压缩包版本下载后解压,然后设置环境变量。

执行 pkg-config --cflags gtk+-3.0,如果输出正常表示安装成功。

3、配置Code::blocks

安装带有Mingw的Code::blocks,因为其不支持直接建立GTK3工程,所以选择新建空白工程,编译选项要做两处更改即可。

1> 编译器选项:

2>链接器设置

4、测试

在1.c 中输入:

#include <gtk/gtk.h>

int main (int  argc, char *argv[])
{
    GtkWidget *window;

    gtk_init (&argc, &argv);

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (window), "Window");

    g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

    gtk_widget_show (window);

    gtk_main ();

    return 0;
}

编译运行成功:

可以开始GTK3之旅了!

时间: 2024-08-09 16:48:18

GTK3学习笔记1的相关文章

GTK3学习笔记3 Packing

其实在不同平台上的应用程序,其常用控件往往都是类似的. 比如按钮控件.布局方式等等,在Android.ios.Windows.Linux上都是相近的,方法也类似.这次的笔记涉及到GTK3中对控件的一种布局方式:Packing. 其效果如下: 该窗口使用Packing,实现了三个按钮控件的布局.代码如下: #include <gtk/gtk.h> static void print_hello (GtkWidget *widget, gpointer data) { g_print ("

GTK3学习笔记 番外1 在windows下给gtk程序打包

在没有安装gtk环境的windows系统,如何运行你的gtk程序?这需要给gtk程序打包. 这里给gtk程序打包,主要是将程序依赖的dll文件提取并放置在exe的相同目录下以达到目的. 搜索一段时间后找到,对于gtk2程序,一般需要提取这些dll文件: freetype6.dll intl.dll libatk-1.0-0.dll libcairo-2.dll libexpat-1.dll libfontconfig-1.dll libgailutil-18.dll libgdk-win32-2

GTK3学习笔记2 Hello World in GTK+

上节讲了在Windows上建立GTK3的codeblocks开发环境,这节讲Example 1. Hello World in GTK+. 例子很简单,实现了窗口和一个普通按钮,效果如图: 源代码如下,有很简单的英文注释,容易看懂,就不翻译了: #include <gtk/gtk.h> /* 下面是两个回调函数 */ static void print_hello (GtkWidget *widget, gpointer data) { g_print ("Hello World\n

GTK3学习笔记4 Drawing

原文介绍可见这里. 这篇介绍一个很好玩的窗口,一个可以进行绘图的窗口.换句话说,就是你已经可以做一个简单的绘图软件了! 效果见下面的动画: 虽然很粗糙,不过,做出这么个简单的绘图窗口算是很有成就感了吧. 关于代码: 不过代码也是比较长的,我将原文中的代码分成了两部分,即头文件mygtk.h和源程序main.c. mygtk.h: #ifndef MYGTK_H_INCLUDED #define MYGTK_H_INCLUDED /* 建立一个surface(我翻译为"表面"),用于存储

vector 学习笔记

vector 使用练习: /**************************************** * File Name: vector.cpp * Author: sky0917 * Created Time: 2014年04月27日 11:07:33 ****************************************/ #include <iostream> #include <vector> using namespace std; int main

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle ICondu

jQuery学习笔记(一):入门

jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操作如下: 1 document.getElementById('info').value = 'Hello World!'; 使用JQuery时获取DOM文本操作如下: 1 $('#info').val('Hello World!'); 嗯,可以看出,使用JQuery的优势之一是可以使代码更加简练,使开

[原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Activiti 学习笔记记录(三)

上一篇:Activiti 学习笔记记录(二) 导读:上一篇学习了bpmn 画图的常用图形标记.那如何用它们组成一个可用文件呢? 我们知道 bpmn 其实是一个xml 文件