Linux|系统管理|WEB开发

关注Linux,系统管理,WEB开发以及开源世界

解决之前gtk程序崩溃的问题

| Comments

昨天我说要尽量使用Qt开发的程序,其中一个原因是我的绝大部分Gtk开发的程序在KDE环境下都会崩溃。 听风同学认为我人品一定有问题。还好有Rachel来帮我证明我人品没有问题(回到请你吃饭,太老土了,请你聊天吧)。

为了证明我是冤枉的,我今天特意花了半天时间来看看到底是怎么回事。

首先root账号在KDE环境下是可以运行Gtk程序的,这说明不应该是程序或者动态库的问题。同时我创建了另外一个普通账号,在KDE环境下运行Gtk程序也是没有问题的,这也排除了动态库权限的,实际上从strace跟踪的结果来看,没有发现权限问题。

因此只有可能是我目前账号的一些默认配置出了故障。因为系统不停的升级,所以也搞不清到底是升级或者安装了哪个包出了问题。于是首先把~/下面的所有与Gtk相关的隐藏文件全部移走。再运行Gtk程序,一切正常,看了真的是我的配置文件出了。 于是一个一个排查,最后确定是~/.gtkrc-2.0-kde这个文件的问题。内容如下:

 $ cat .gtkrc-2.0-kde 
 # This file was written by KDE 
 # You can edit it in the KDE control center, under "GTK Styles and Fonts"               include "/usr/share/themes/Qt/gtk-2.0/gtkrc" 
 style "user-font" {
    font_name="ae_Arab 9" 
    } 
widget_class "*" 
style "user-font"
gtk-theme-name="Qt" 
gtk-font-name="ae_Arab 9" 

从上述文件的注释来看,这个配置文件来自Gtk Styles and Fonts配置选项。 我找到这个配置选项,更改了几个地方,发现是Gtk样式选项的问题,也就是不能选择Qt作为样式引擎,其他的都可以,具体可以看下面这张图片。 image 这个功能是由gtk-qt-engine程序提供的,我目前安装的版本是0.8的修订版,看了是这个程序的BUG呀。

So,听风同学,我可证明了我的清白哟。

Comments