Windows 64 位环境下 GTK2.0 的theme应用

GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG

GTK是个令人又爱又恨的东西,我想之所以还没有彻底被Qt消灭,除了兼容性的考虑,再就是那些漂亮的主题了。在Linux环境下Qt使用GTK的主题非常容易,但是Windows环境就比较麻烦了。笔者5年前写过一篇文章,聊了聊Windows下GTK的使用以及与Qt的结合( Jerry Jho:移植QGtkStyle到OSX和Windows ),但如今64位系统已经普及,GTK官网提供的32位bundle已经不适用了。

幸好我们有了MSYS2这套环境,可以让老树发新芽。国内用户可以在清华的镜像站安装MSYS2并配置国内的源。

Tsinghua Open Source Mirror mirrors.tuna.tsinghua.edu.cn Windows 64 位环境下 GTK2.0 的theme应用

MSYS2安装好之后,启动mingw64环境,运行下面的命令即可安装GTK2以及编译器,非常方便。

pacman -S mingw64/mingw-w64-x86_64-gtk2
pacman -S mingw64/mingw-w64-x86_64-gcc
pacman -S mingw64/mingw-w64-x86_64-pkg-config
pacman -S mingw64/mingw-w64-x86_64-diff
pacman -S make
pacman -S msys/msys2-w32api-runtime

这时候可以运行gtk-demo查看gtk是否能正常运行。

MSYS2自带的gtk主题比较少,因此需要自己编译。例如我最喜欢的nodoka主题:

wget http://deb.debian.org/debian/pool/main/g/gtk-nodoka-engine/gtk-nodoka-engine_0.7.0.orig.tar.gz
tar zxf gtk-nodoka-engine_0.7.0.orig.tar.gz
cd gtk-nodoka-engine-0.7.0
./configure
make
make install

这里需要注意,由于libtools在mingw环境下的适配问题,你会发现一大堆warning之后只产生了一个静态库(毕竟是个老古董了)。所以需要手工编译、安装动态库,这样才能用

gcc -shared .libs/*.o -o libnodoka.dll `pkg-config --libs gtk+-2.0`
cp libnodoka.dll /mingw64/lib/gtk-2.0/2.10.0/engines/

由于gtk-chtheme无法在最新的gcc 10下编译通过,只好手工指定主题文件了

export GTK2_RC_FILES=/mingw64/share/themes/Nodoka-Silver/gtk-2.0/gtkrc

再次运行gtk-demo,可以看到nodoka主题已经成功的使用

蛇之魅惑
我还没有学会写个人说明!
上一篇

阿里ACP大数据学习相关术语

下一篇

Presto 实践 | Presto 在车好多的实践

你也可能喜欢

评论已经被关闭。

插入图片