gtk+介绍(代码片段)

银魔术师 银魔术师     2022-11-17     430

关键词:

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=""/>属性

windows下安装并使用gtk4(代码片段)

...安装GTK4的文章《Ubuntu20.04LTS(amd64)下安装GTK4》,现在介绍如何在Windows下安装并使用GTK4。第一步安装Mingw1️⃣下载并安装mingw       下载地 查看详情

gtk#tutorial(代码片段)

ThisisGTK#tutorialfortheC#programminglanguage.Thistutorialissuitableforbeginnersandmoreadvancedprogrammers.GTK#GTK#isawrapperovertheGTK+fortheC#programminglanguage.Thelibraryfacilitatesbuildinggraphic 查看详情

简单的gtk窗体搭建(代码片段)

#include<gtk/gtk.h>//必须引用gtk/gtk.h这个头文件2intmain(intargc,char*argv[])//标准c语言主函数的声明34GtkWidget*window;//声明一个窗口控件的指针,其中GtkWidget是gtk+2.0控件类型。window是变量名,与变量类型无关56gtk_init(&argc,&argv);//... 查看详情

textcmake和gtk+3(代码片段)

查看详情

python一个简单的gtk+视窗。(代码片段)

查看详情

gtk3+gtkprogressbar使用(代码片段)

#include<gtk/gtk.h>gbooleantimeout_callback(gpointerdata)gdoublevalue;GString*text;value=gtk_progress_bar_get_fraction(GTK_PROGRESS_BAR(data));value+=0.01;if(value>1.0)value=0.0;gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(data),value);text=g_string_new(gtk_progress_bar_get_text(GTK_PROGR... 查看详情

gtk入门(代码片段)

环境准备官网下载GTK源码包,因为本机GLib版本不够,下载一个非最新版的GTK3.8.0先学习用直接阅读"/gtk+-3.8.0/docs/reference/gtk/html/gtk-building.html"进行操作安装完毕,gtk3-demo出来gtk的样例界面即安装搞定实例学习编译命令和编... 查看详情

用cmake构建gtk程序(代码片段)

情况说明先前已经在windows下基于GDI实现了一个简陋的imshow。考虑跨平台,也考虑万一某天M$不让我们用盗版系统了,还是需要实现一个Linux下的imshow。GTK相当于GDI在Linux下的一个替代。我用的ubuntu16.04,unity桌面,因此估计是系统... 查看详情

c指针原理(26)-gtk(代码片段)

下面演示了如何在窗口中增加一个按钮,示例代码均有注释?#include?<gtk/gtk.h>static?void?print_hello?(GtkWidget?*widget,gpointer?data)//这是一个回调函数,这个data表示传给回调函数的参数。??g_print?("你好,世界");static?gboolean?on_delete_event?(... 查看详情

go-gtk简单的空白窗口(代码片段)

...使用gomod。在goland中的设置:第一次运行点击这里:示例代码:packagemainimport( "github.com/mattn/go-gtk/gtk" "os")funcmain() 查看详情

gtk4设置gtkinfobar背景颜色(代码片段)

文章目录GTK4设置GtkInfoBar背景颜色一、失败的尝试二、换个思路2.1使用GtkMessageType“GTK_MESSAGE_OTHER”来实现需求2.2任意GtkMessageType下获取infobar的孙子控件box设置CSSGTK4设置GtkInfoBar背景颜色一、失败的尝试最近使用GTK4开发应用,... 查看详情

gtk4设置gtkinfobar背景颜色(代码片段)

文章目录GTK4设置GtkInfoBar背景颜色一、失败的尝试二、换个思路2.1使用GtkMessageType“GTK_MESSAGE_OTHER”来实现需求2.2任意GtkMessageType下获取infobar的孙子控件box设置CSSGTK4设置GtkInfoBar背景颜色一、失败的尝试最近使用GTK4开发应用,... 查看详情

基于gtk的imshow:用stb_image读取图像并用gtk显示(代码片段)

...用gtk显示,初步实现一个基于gtk的imshow。首先是找到一份代码,从指定的buffer创建gtk的image并显示(参考1)。然后用s 查看详情

sudoapt-getinstalllibcanberra-gtk-module(代码片段)

问题描述:Ubuntu18.04命令行执行命令报错提示:Failedtoloadmodule"canberra-gtk-module"解决方案:1、执行以下命令,相信定有奇效sudoapt-getinstalllibcanberra-gtk-module2、执行过程中,按照提示,输入Y3、再次重新执行刚才报错的命令 参考... 查看详情

gtk可能遇到的问题汇总(代码片段)

...法:codeblocks使用全局信号量必须配置-rdynamic如果你的布局代码是:拿必须错误因为你使用的是GTK2.X,<requireslib="gtk+"version="3.0"/><objectclass="GtkWindow"id="window1">解决办法:注意在命令行下使用GTK3.0开发是不会出错的<requireslib="gtk... 查看详情

glade开发gtk+界面(代码片段)

...; 给按钮设置信号控制也就是事件   3:编写代码#include<gtk/gtk.h>#include<stdio.h>//我们在UI中,为button1添加的点击函数voidbtn_click(GtkObject*object,gpointeruser_data)printf("5sssssssssssssssss");gtk_main_quit();intmain(intargc,char*argv[]... 查看详情

在gtk中缩放图像(代码片段)

在GTK中,如何缩放图像?现在我用PIL加载图像并预先缩放它们,但有没有办法用GTK做到这一点?答案使用gtk.gdk.Pixbuf从文件加载图像:importgtkpixbuf=gtk.gdk.pixbuf_new_from_file('/path/to/the/image.png')然后缩放它:pixbuf=pixbuf.scale_simple(width,hei... 查看详情

gtk4listmodel知多少?(代码片段)

【GTK4】LISTMODEL总结文章目录【GTK4】LISTMODEL总结一、LISTMODEL创建、管理工具1️⃣GtkSliceListModel2️⃣GtkFlattenListModel3️⃣GtkMapListModel二、LISTMODEL的具体应用1️⃣Pangoobjects2️⃣GtkDirectoryList和GtkBookmarkList3️⃣GtkDropDown三、LI 查看详情