我在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。谢谢你的尝试,我很感激他们。
答案 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的文件,该文件也必须删除。同时删除调试和发布文件夹。
然后照常从命令行运行qmake
和make
。
你在执行时“骂”你的申请吗?这也称为另一种风格。
答案 2 :(得分:0)
第一个建议的方法
您是否尝试通过命令行手动更改应用程序的样式?转到应用程序文件夹,其中包含程序的编译版本,并通过附加-style cleanlooks
或任何其他预定义样式(windows
,motif
,{{1}来执行它},cde
,plastique
或cleanlooks
)。如果程序名为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/#74232 和 http://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")
其中app
是QApplication
个实例。