丑陋的Qt应用程序在ubuntu下看

时间:2012-05-15 12:29:40

标签: qt ubuntu gtk

我在Linux下开发一些Qt应用程序构建。我已经下载了源代码并首先在Windows 7下编译,但后来我决定在Ubuntu下工作。问题是,Linux中的应用程序看起来像Win95时代。我已经安装了Qt4设置并选择了GTK +风格,但这只改善了外观,虽然它看起来仍然很难看(如256 collors pallette,字体是斜体)。我还安装了许多gtk库,但没有任何帮助。我使用Qt-4.7.4。我知道它应该看起来不同,因为在Windows上问题没有出现,即使在我的老板的电脑上,也在使用Ubuntu,应用程序看起来好多了。

应用程序将样式更改为QPlasticStyle本身。

提前感谢您的每一个答案。


好吧,还有很多尝试,但没有改变。也许我会告诉你这个问题。应用程序的外观(或多或少)(我的合作伙伴之一): http://postimage.org/image/70p6sw7xd/full/

以及它的实际外观(由我制作): http://postimage.org/image/48psktnuj/full/

到目前为止,我还有两件事没有做过:
1)一开始,我安装了Qt-4.8.1,但它在make生成了一些OpenGL错误,所以我随后下载了4.7.4版本(我的老板和cos正在使用的那个版本)并且与之相关安装。最后,我只是用4.7.4中的一个来覆盖4.8.1中的qt-make并且它编译得很好。但后来我遇到了'问题'。关键点 - 所有Qt应用程序告诉(帮助 - >关于Qt)他们正在使用Qt-4.8.1,我想知道它是否与问题有关。

2)第二件事是我的图形。我有配备Nvidia Optimus的MSI CX640笔记本电脑。在安装Ubuntu之后,我不得不使用集成的Intel HD3000而不是专用的GT520M(这使得风扇的行为非常不必要)。我已经谷歌搜索了这样做的方式并且实际上成功禁用了GT520M。有什么意义 - 我不确定,但我记得在我寻找解决方案的网站上提到了一些OpenGL的东西。我认为这与问题没有任何共同之处,但我现在非常沮丧,因为我现在正在深入了解所有事情。

也许这些可以更好地概述问题。

PS。谢谢你的尝试,我很感激他们。

6 个答案:

答案 0 :(得分:6)

尝试安装qt4-qtconfig包。使用qtconfig工具自定义外观。

sudo apt-get install qt4-qtconfig
qtconfig &

修改

如果看起来非常糟糕,请尝试删除(或临时重命名)~/.config/Trolltech.conf文件。然后使用Qt4设置重新开始。另外,我建议您尝试安装Oxygen和QtCurve样式。

答案 1 :(得分:0)

您是否尝试清理项目?

删除.cpp,.h和.pro

以外的所有内容

这包括扩展名为.pro.user的文件,该文件也必须删除。同时删除调试和发布文件夹。

然后照常从命令行运行qmakemake

你在执行时“骂”你的申请吗?这也称为另一种风格。

答案 2 :(得分:0)

第一个建议的方法

您是否尝试通过命令行手动更改应用程序的样式?转到应用程序文件夹,其中包含程序的编译版本,并通过附加-style cleanlooks或任何其他预定义样式(windowsmotif,{{1}来执行它},cdeplastiquecleanlooks)。如果程序名为gtk+,那么您必须写:

foo

将外观与老板的电脑进行比较。这将指示问题是与样式有关还是在Qt中选择预定义样式。

另一种可能的方法

知道您已覆盖以前的安装,可能是某些库文件已损坏或丢失或未被Qt4.7.4覆盖。

如果是这种情况,您可以通过在老板的计算机和您的计算机之间的某些目录上执行foo -style gtk+ 来发现哪些文件已损坏或误导。

Qt库通常位于diff(预编译样式存在,预编译),文件名采用/usr/lib/i386-linux-gnu/

形式

如果检查某些项目的Makefile并搜索libQt...开关,则可以验证库的路径。也许你的是在另一个文件夹中,比如直接-L

因此,您可以使用以下命令列出库及其名称和大小:

/usr/lib

如果您看到某些链接指向错误的位置,或者版本号已加扰,那么您已找到问题所在。如果没有,那么将列表与你老板的另一个列表进行比较(可能文件大小可能表示Qt4.8的剩余部分)。

我不知道您是否可以将库文件从一台计算机替换为另一台计算机。尝试。最不可能发生的是你必须重新安装Qt。

答案 3 :(得分:0)

好吧,几天过去了,我还在苦苦挣扎。

但是,我已经正确地重新安装了Qt 4.7.4,如果构建它,应用程序看起来很好,尽管有字体,就像Monotype而不是Ubuntu的那个。 不幸的是,这是Qt问题,很难弥补。也许你现在该怎么做? 我正处理解决问题的最后一部分。

编辑:华友世纪!解决了! 我将4.8.1与我的项目兼容使用 http://qt-project.org/forums/viewthread/14269/#74232http://ubuntuforums.org/showthread.php?t=1559654

谢谢大家。

答案 4 :(得分:0)

如果使用Qt 4,您可能只需要将图形系统设置为' raster'。我不知道Qt 5是否可以这样做(尝试命令行开关,因为setGraphicsSystem函数已经消失了。)

有几种方法可以做到这一点。见http://qt-project.org/doc/qt-4.8/qapplication.html#setGraphicsSystem

  

void QApplication :: setGraphicsSystem(const QString& system)[静态]

     

将默认图形后端设置为system,该后端将用于屏幕小部件和QPixmaps。可用的系统是" native"," raster"和" opengl"。

     

有几种方法可以按优先级递减的顺序设置图形后端:

     
      
  • 应用程序命令行-graphicssystem switch
  •   
  • 的QApplication :: setGraphicsSystem()
  •   
  • QT_GRAPHICSSYSTEM环境变量
  •   
  • Qt configure -graphicssystem switch
  •   
     

如果最高优先级开关设置了无效名称,则将忽略该错误并使用默认后端。

     

警告:此函数仅在调用QApplication构造函数之前有效。

答案 5 :(得分:0)

使用ubuntu 14.04,该应用程序在以普通用户身份运行时看起来很好,但在以root用户身份运行时,它使用的是非常难看的motif主题。

我能够通过使用:

使应用程序使用漂亮的默认辐射主题

app.setStyle("gtk")

其中appQApplication个实例。

请参阅http://doc.qt.io/qt-4.8/qapplication.html#setStyle-2