Articles of qt5

项目错误:QT中的未知模块:webkitwidgets

我试图使用MXE(在本教程的帮助下),并在qmake && make步骤中收到此错误消息: Project ERROR: Unknown module(s) in QT: webkitwidgets". 这是什么意思,我该怎么办?

本机KDE寻找Qt 5应用程序

我在Kubuntu 12.10 linux机器上安装Qt5和Qt4,注意到以下几点: 使用Qt4编译的程序具有原生的KDE外观和感觉。 我使用默认的KDE的Oxygen主题,我的程序也是这样(请注意平滑的渐变,标题和蓝色select的焦点部件); 但是当用Qt5 进行重新编译而没有对代码做任何改变的时候 ,它使用了不同的风格(看起来就像是Fusion ),看起来很尴尬和不合适(见右图) 我想要的是非常直截了当的:我希望我的应用能够适应周围的系统,也就是始终看起来是本地的。 在使用Qt4时,我习惯于默认使用这个。 Qt5在Windows中似乎也具有正常的本地外观。 但是我还需要做些什么才能在Kubuntu中拥有相同的function呢? 而且, 到处都是理想的? 我的意思是,我不想强​​制我的应用程序的Linux版本严格使用氧气 。 我希望它能够使用当前在KDE中设置的主题:就像在Qt4中一样。 看起来应用程序代码与这个问题无关:我没有使用任何QStyle,这是Qt的“hello-world”。 但是,以防万一它在GitHub上 。 UPD: @peppe 已经给出了相当充分的答案, 为什么会出现这个问题 (KDE中的Oxygen主题是针对Qt4编译的,而Qt5则无法使用)。 但我仍然在寻找如何解决这个问题的答案? 我试图find氧气主题源来玩,但除了Firefox主题没有find任何东西。 UPD2: @kwirz 提出了一个有趣的想法:强制应用程序使用GTK +主题,并在KDE设置中启用氧气gtk ,使GTK窗口看起来类似于氧气。 一方面,它确实看起来更接近于氧气: 但另一方面,我们已经看到了很小的差异:只读行编辑变成灰色,聚焦的button仍然不亮,等等。不幸的是,当试图将这种技术应用到更复杂的小部件时,出现更多的文物(特别是combobox和微调): 所以看起来这个技术不可能是一个完整的解决scheme,但仍然非常有用的是简单的情况。

Qt的sysroot和prefix选项是一个实际的例子

我正在查看可以为Qt提供的configure脚本运行的所有选项。 (特别是qt-everywhere-opensource-src-5.2.0)。 经过相当多的search,我已经确定这个东西是最好的logging,所以我希望我能得到一些帮助。 当我查看prefix和sysrootconfiguration选项的描述时: 〜/ qt-everywhere-opensource-src-5.2.0 $ ./configure -help | grep“sysroot” -extprefix <dir> …使用-sysroot时,将所有内容安装到<dir> , -sysroot <dir> ……将<dir>设置为目标编译器和qmake的sysroot,并设置pkg-configpath。 -no-gcc-sysroot …..当使用-sysroot时,它会禁止传递–sysroot到编译器 〜/ qt-everywhere-opensource-src-5.2.0 $ ./configure -help | grep“前缀” -prefix <dir> ……这将安装与<dir> -extprefix <dir> …使用-sysroot时,将所有内容安装到<dir> , -hostprefix [dir]开发时需要的工具和库 所以我之前使用了-prefix ,并且完全按照所述进行了操作。 它将所有内容放在提供的<dir> ,然后当我使用<prefix_dir>/bin/qmake构build我的应用程序并将其安装在我的目标平台上时,它希望find<prefix_dir>/lib处的所有共享对象库。 我的印象是,如果我使用-sysroot它会将所有东西安装在<sysroot_dir>然后当我在目标平台上安装我的应用程序时,它将在/libsearch。 至less我希望这是真的。 现在如果我的假设是正确的,那么-extprefix什么-extprefix呢? 他们是否说,如果我可以redirect的地方好事,如果我同时使用-sysroot和-extprefix ? 那么为什么我要使用-no-gcc-sysroot呢? 如果我想我的Qt库安装在“sysroot”为什么我不希望gcc使用/知道相同的sysroot? 如果我能得到一些关于如何正确使用这些选项的实际例子,那么对这些中的一些的解释会很好,甚至更好。

什么是各种Qt平台插件的使用?

我正在为基于ARM的目标(TI AM335x EVM)进行一些Qt5.2应用程序的交叉编译,并且无法在我的平台上显示任何东西。 在做了一些谷歌search之后,我发现如果我用以下方式启动它: ./helloworld -platform eglfs 它会显示(全屏幕,但它的工作)! 我开始考虑所有的平台选项,我发现: android,eglfs,linuxfb,minimalegl,windows,xcb,cocoa,ios,offscreen,qnx,directfp,kms,最小,openwfd 我想知道他们是为了什么。 例如,我假设如果我想在Android设备上运行我的应用程序,则必须传递-platform android ,但它们对我来说并不明显。 是否有任何地方应该使用这些参数的每一个? 例如, eglfs代表什么? 为什么我需要使用那个在linuxfb没有工作? (我会认为linux的帧缓冲是我想要启动我的应用程序,因为它是在embedded式Linux上运行)

如何静态构buildQt 5

我在Linux环境下使用基于Qt 5.0.1的Qt Creator 2.6.2。 该应用程序在我编译的计算机上工作正常,但是当我在另一台计算机上执行它时,出现如下错误: error while loading shared libraries: libQt5WebKitWidgets.so.5: cannot open shared object file: No such file or directory error while loading shared libraries: libxslt.so.1: cannot open shared object file: No such file or directory 我在这个链接find了一些解决scheme(一些链接已经死了)。 所以我添加到我的.pro文件这一行: CONFIG += static 要静态编译我的项目。 我以为我会得到的文件会更大,但我得到相同的大小和相同的错误。 谢谢。

使用Qt5(来自WId)在windows上获取HWND

我正试图将Qt4应用程序转换为Qt5。 唯一我无法弄清楚的是如何获得Widget的HWND 。 该程序使用EcWin7来显示任务栏图标上的胜利7 +的进展,但期望一个HWND 。 在将Q_WS_WIN更改为Q_OS_WIN之后,lib本身似乎编译正常)在Windows上的Qt4中,只是HWND的一个typedef,所以这没有问题。 在Qt5中,情况并非如此。 我发现了一些邮件列表发布 ,可能会提供一个线索,但似乎QPlatformNativeInterface不再是Qt5的公共API的一部分。 该程序调用EcWin7.init(this-> winId()); 我需要一些方法来将此ID转换为HWND ID或其他方式来获得这个。

Qt5 QSlider调色板在windows下无效

我用 slider->setPalette(QPalette(mycolor, mycolor)); 为滑块着色(Qt5)。 在Linux下,这个效果很好,但在Windows 7下,滑块看起来完全正常,没有任何颜色变化。 有什么办法可以在windows下获取彩色滑块吗?

如何在Windows上findqt5 CMake模块

我试图在Windows上使用CMake制作一个非常基本的Qt5应用程序。 我使用qt5的文档来使用CMake ,而我的main.cpp文件只包含一个主函数。 我的CMakeLists.txt正是: cmake_minimum_required(VERSION 2.8.9) project(testproject) 编辑解决scheme set (CMAKE_PREFIX_PATH "C:\\Qt\\Qt5.0.1\\5.0.1\\msvc2010\\") 结束编辑 # Find includes in corresponding build directories set(CMAKE_INCLUDE_CURRENT_DIR ON) # Instruct CMake to run moc automatically when needed. set(CMAKE_AUTOMOC ON) # Find the QtWidgets library find_package(Qt5Widgets) # Tell CMake to create the helloworld executable add_executable(helloworld hello.cpp) # Use the Widgets module from Qt […]

Qt错误:未find过程条目

我正在Qt 5.6.1中做一个项目。 当我在Qt Creator中运行它时,它运行完美。 但是当我在文件夹中运行它时,它显示: 程序入口点?0QVariant @@ QAE @ ABVQString @@@ Z不能位于DLL Qt5Core.dll中。 我该如何解决?

setWindowFlags(Qt :: WindowStaysOnTopHint)隐藏了Qt窗口

我想让我的Qt窗口保持在最前面。 当执行setWindowFlags(Qt::WindowStaysOnTopHint) ,窗口变为隐藏(在Windows 7上)。 我也试过: Qt::WindowFlags flags = windowFlags(); setWindowFlags(flags | Qt::WindowStaysOnTopHint); 而且,它仍然是一样的。 我在这里做错了什么?