3

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

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

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


好吧,又尝试了很多次,但没有任何改变。也许我会告诉你这个问题。应用程序的外观(或多或少)(由我的一位同事制作): http: //postimage.org/image/70p6sw7xd/full/

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

到目前为止我还没有做两件事:
1)一开始,我安装了 Qt-4.8.1,但它产生了一些 OpenGL 错误,make所以我下载了 4.7.4 版本(我的老板和cos正在使用)并且正在努力安装。最后,我刚刚用 4.7.4 中的 qt-make 覆盖了 4.8.1 中的 qt-make,它编译得很好。但后来我遇到了“问题的事情”。重点 - 所有 Qt 应用程序都告诉(Help-> About Qt)他们正在使用 Qt-4.8.1,我想知道它是否与问题有关。

2)第二件事是我的图形。我有搭载 Nvidia Optimus 的 MSI CX640 笔记本电脑。安装 Ubuntu 后,我不得不使用集成的 Intel HD3000 而不是专用的 GT520M(它使风扇的噪音变得不必要)。我已经用谷歌搜索了这样做的方法,实际上成功地禁用了 GT520M。它有什么意义 - 我不确定,但我记得在我正在寻找解决方案的网站上提到了一些 OpenGL 的东西)。我认为这与问题没有任何共同之处,但我很沮丧,现在我正在洞察一切。

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

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

4

6 回答 6

6

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

sudo apt-get install qt4-qtconfig
qtconfig &

编辑:

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

于 2012-05-15T22:49:48.140 回答
1

第一个提议的方法

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

foo -style gtk+

将外观与您老板的计算机进行比较。这将表明问题出在样式上还是与 Qt 中预定义样式的选择有关。

另一种可能的方法

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

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

Qt 库通常位于/usr/lib/i386-linux-gnu/(预编译的预编译样式在哪里),文件名的格式为libQt...

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

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

ls -l /usr/lib/i386-linux-gnu/libQt*

如果你看到一些链接指向错误的地方,或者版本号乱码,那么你已经找到了问题所在。如果不是,则将列表与您老板的另一个列表进行比较(可能文件大小可能表明 Qt4.8 的残余)。

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

于 2012-05-16T14:57:15.430 回答
0

您是否尝试过清理项目?

删除除 .cpp、.h 和 .pro 之外的所有内容

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

然后像往常qmake一样make从命令行运行。

执行时您是否在“sudoing”您的应用程序?那也叫另一种风格。

于 2012-05-15T21:29:07.193 回答
0

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

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

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

谢谢大家。

于 2012-05-18T15:38:13.277 回答
0

如果使用 Qt 4,您可能只需将图形系统设置为“光栅”。我不知道是否可以在 Qt 5 中执行(尝试命令行开关,因为 setGraphicsSystem 函数已经消失)。

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

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

将默认图形后端设置为系统,它将用于屏幕小部件和 QPixmap。可用的系统是“native”、“raster”和“opengl”。

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

  • 应用程序命令行 -graphicssystem 开关
  • QApplication::setGraphicsSystem()
  • QT_GRAPHICSSYSTEM 环境变量
  • Qt 配置 -graphicssystem 开关

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

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

于 2014-07-08T17:25:21.643 回答
0

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

通过使用,我能够使应用程序使用漂亮的默认辐射主题:

app.setStyle("gtk")

实例app在哪里。QApplication

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

于 2015-10-13T21:27:16.973 回答