GTK+介绍

Posted 银魔术师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GTK+介绍相关的知识,希望对你有一定的参考价值。

GTK+介绍

官方文档

GTK+ 学习

### 在Ubuntu系统下
$ sudo apt-get intall gtk-3-examples

GTK+ 依赖的函数库

  • Glib

    提供了各种各样的语言特性,譬如说:各种数据类型、字符串函数、错误通知、消息队列和线程的通用的函数库。

  • Pango

    用来实现国际化和本地化功能的函数库。

  • ATK

    一种平易近人的工具函数包,提供了快捷键服务为肢体有缺陷的人使用电脑提供了便利。

  • GDK

    它为整个 GTK+图形库系统提供了一些底层的"图形实现"和"窗口实现"的方法。在Linux中GDK是位于X服务器和GTK+函数库之间的。在最近的GTK+发行版本中,越来越多的功能性函数,都交给了 Cairo函数库来处理。

  • GdkPixbuf

    用于加载图像和维护图像"缓存"(pixel buffer)的函数库工具包。

  • Cairo

    用于制作二维图像的函数库

关于展开和填充

部件大小就是我们按钮的大小,布局空间大小我们放置按钮的空间大小,比如我们在一个窗口设置了一个2条目的Gtk.Box,则每个布局空间大小就是1/2窗口大小

  • 展开:设置了展开,则当部件比布局空间小的时候,布局空间大小不变,否则布局空间缩小到部件大小
  • 填充:让部件放到到布局空间大小

关于对齐

就是当布局空间过大,但是放置的部件不好直接展开和填充的情况下,使用对齐来进行展开和填充,然后调整部件的缩放比例和位置。就是不想改变按钮大小,但是又希望布局空间大小不变可以使用对齐布局来处理。

使用Glade来创建布局

Windows环境

  • 编译环境

    操作系统: 64位 Fedora23

  • 下载源文件

    $ git clone [email protected]:silvermagic/glade.git
    $ cd glade
    $ git checkout msitools
  • 安装依赖

    $ sudo yum install -y mingw64-gcc-5.3.0-1.fc23.x86_64 mingw64-filesystem.noarch mingw64-gtk3.noarch mingw64-libxml2.noarch mingw32-nsis.x86_64
  • 编译glade

    $ ./autogen.sh
    $ mingw64-configure
    $ mingw64-make -j8
    ### 将在data目录下生成glade的msi安装文件
    $ mingw64-make msi

错误处理

  • 工具栏新建、打开等按钮消失提示Gtk-WARNING **: Error loading theme icon ‘image-missing‘ for stock

    ### 打包msi的时候需要打包mingw64-hicolor-icon-theme和mingw64-adwaita-icon-theme,使用下面的命令生成wxi文件
    $ rpm -ql mingw64-adwaita-icon-theme | wixl-heat -p /usr/x86_64-w64-mingw32/sys-root/mingw/ --component-group CG.adwaita-icon-theme --var var.SourceDir --directory-ref=INSTALLDIR > adwaita-icon-theme.wxi
    ### 修改<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">为<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">,然后删除其中的.cache文件
  • 程序无法启动

    看下是不是打包msi的时候少了动态库,根据configure.ac的check_module打包对应库

  • msi安装的时候提示Could not write value VersionMajor to key

    ### 1.msi的版本号格式需要是<Product Version="MAJOR.MINOR.MICRO">的格式
    ### 2.新增<Property Id="VersionMajor" Value=""/>、<Property Id="VersionMinor" Value=""/>和<Property Id="VersionMicro" Value=""/>属性

以上是关于GTK+介绍的主要内容,如果未能解决你的问题,请参考以下文章

GtkCssProvider 和 CSS 样式的问题

Gtk+/Gtkmm介绍与安装(有继承关系图)

如何在等待程序启动混乱/GTK +时制作加载/介绍动画弹出窗口

从线程调用时,GTK 代码挂起@gtk_container_add

GTK+重拾--09 GTK+中的组件

gtk窗口和标签控件范例代码