问题标签 [qt5.6]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
3436 浏览

windows - 如何在 Windows 上为 Raspberry Pi3 构建 Qt 以交叉编译

我已经尝试在 Windows 上为 raspberry pi3 构建 qt 6 个月了。我尝试了很多教程,阅读了很多论坛,但没有成功的结果。

我可以按照 RaspberryPi2EGLFS 在 vi​​rtualbox 中的 ubuntu 14.04 上构建 qt,它有一些错误,但我可以解决它们。我可以部署一个应用程序。我想在 Windows 上做同样的事情。

在http://visualgdb.com/tutorials/raspberry/qt/embedded/中有一个关于在 Windows 上构建的教程,我无法按照它构建。

一个可以为 raspberry pi3 构建 qt 的人通过参考上面的教程写到 qt 论坛。https://forum.qt.io/topic/68381/cross-compile-qt-windows-to-raspberry-3我试过这个我又得到错误。

我尝试了很多 QT 版本,例如 5.6.1、5.7.0、5.8.0、5.6.2(最后发布的长期支持版本)。Mingw 版本大于 4.9、MSVC2015 等。

每个版本都有不同的错误。5.7.0 有一个错误,他们说这个错误在 5.8.0 中已解决,而 5.8.0 中还有另一个错误。这个问题没有完成。

我只想在 Windows 上轻松地为树莓派 pi3 构建 qt。

请有人通过提供与支持 Raspberry Pi3 的版本协调工作的所有工具来编写教程

visualgdb 提供了编译器的链接,但它们是 Raspberry Pi3 的旧版本,它有错误,我无法构建 Qt。

最后输出:

正在执行影子构建... 正在准备构建树... 运行配置测试(阶段 1)... 已启用预编译头支持。C:/SysGCC/Raspberry/bin/arm-linux-gnueabihf-g++ -c -fvisibility=hidden fvisibility.c 符号可见性控制已启用。c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld.gold.exe: -plugin: 未知选项 c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld .gold.exe:使用 --help 选项获取使用信息 collect2.exe:错误:ld 返回 1 退出状态 C:/SysGCC/Raspberry/bin/arm-linux-gnueabihf-g++ --sysroot=C:/SysGCC/树莓/arm-linux-gnueabihf/sysroot -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c bsymbolic_functions.c:2:2: error: #error "


我用 4.9.2 更改 MinGW,而不是生成 qmake.exe 然后,我更改一行 ( if true; then ###[ '!' -f "$outpath/bin/qmake" ]; to if [ '!' -f "$outpath/bin/qmake" ]; 然后 ###[ '!' -f "$outpath/bin/qmake" ];) 在 qtbase 中配置文件。我再次运行配置。

$ ../qt-everywhere-opensource-src-5.6.2/configure -platform win32-g++ -xplatform linux-arm-gnueabi-g++ -release -opengl es2 -device linux-rpi3-g++ -sysroot C:/SysGCC/ Raspberry/arm-linux-gnueabihf/sysroot -prefix /usr/local/qt5 -device-option CROSS_COMPILE=C:/SysGCC/Raspberry/bin/arm-linux-gnueabihf- -qt-xcb -verbose

输出:

构建选项:配置............可访问性accessibility-atspi-bridge alsa audio-backend c++11 c++14 clock-gettime clock-monotonic compile_examples concurrent cross_compile cups dbus egl eglfs eglfs_brcm enable_new_dtags evdev eventfd freetype完整配置 getaddrinfo getifaddrs harfbuzz iconv icu inotify ipv6ifname large-config largefile libudev linuxfb medium-config minimum-config mremap neon opengl opengles2 openssl pcre png posix_fallocate precompile_header qpa qpa reduce_exports 发布 rpath shared small-config system-jpeg system-zlib threadsafe-cloexec xcb xcb-glx xcb-plugin xcb-qt xcb-xlib xinput2 xkbcommon-qt xlib xrender 构建部分............ libs模式...... ... release 使用 sanitizer(s)...... 无 使用 C++ 标准 ..... c++14 使用黄金链接器....... 没有 使用新的 DTAGS ........ 是的
使用 PCH ........ 是 使用 LTCG ...... 否 目标编译器支持:Neon ...... ..... 是的

Qt 模块和选项: Qt D-Bus ...... 是(在运行时加载 dbus-1) Qt Concurrent .......... 是 Qt GUI .. ................ 是 Qt Widgets ............. 是 大文件 ............. 是
QML 调试.......... 是 使用系统代理 ..... 否

支持:可访问性............是ALSA............是CUPS............ ....... 是 Evdev ........ 是 FontConfig ...... 没有 FreeType ...... ......... 是(捆绑副本) Glib ............ 没有
GStreamer ......没有 GTK 主题 ................... 没有 HarfBuzz ...... 是(捆绑副本) Iconv .......... ........ 是的
ICU ....................是图像格式:GIF ...................是(插件,使用捆绑复制)JPEG ......................是(插件,使用系统库)PNG ......................是(在QtGui,使用捆绑副本) libinput ......没有日志后端:journald ......没有 syslog ...... .......... 没有 mtdev .................. 没有 网络:getaddrinfo .......... 是 getifaddrs .... ....... 是 IPv6 ifname .......... 是 libproxy....... 没有 OpenSSL ...... .. 是(在运行时加载库) OpenGL / OpenVG:EGL ........ 是 OpenGL ........ . 是 (OpenGL ES 2.0+) OpenVG ...... 没有 PCRE ................... 是(捆绑副本) pkg-config ...... 是 PulseAudio ...... 没有
QPA 后端:DirectFB ...... 没有 EGLFS ...... 是 EGLFS i.MX6 ............ 没有 EGLFS i.MX6 韦兰。没有 EGLFS EGLDevice .... 没有 EGLFS GBM .......... 没有 EGLFS Mali ...... 没有 EGLFS Raspberry Pi 。是 EGLFS X11 .......... 没有 LinuxFB ........ 是 Mir 客户端............ 没有 XCB .... ............. 是(捆绑副本)X 上的 EGL ...... 没有 GLX ...... . 是 MIT-SHM ............ 是 Xcb-Xlib ............ 是 Xcursor ............ 是(加载于运行时)Xfixes ......是(在运行时加载)Xi ......................没有 Xi2 ...... ........是Xinerama............是(在运行时加载)Xrandr............是(在运行时加载)Xrender .. …………

警告:找不到 XKB 配置根目录,使用 -xkb-config-root 设置 XKB 配置数据的路径。这是键盘输入支持所必需的。

注意:Qt 在这个系统上使用 double 表示 qreal。这与 Qt 5.1 二进制不兼容。使用“-qreal float”进行配置以创建与 5.1 二进制兼容的构建。

Qt 现在配置为构建。只需运行'make'。一切都构建好后,您必须运行“make install”。Qt 将安装到 /usr/local/qt5

在重新配置之前,请确保从以前的构建中删除任何剩余部分。

TheBUKs@DESKTOP-5D6JDFN MSYS /c/qt/qt-build $ make cd qtbase/ && ( test -e Makefile || C:/qt/qt-build/qtbase/bin/qmake.exe C:/qt/qt- Everywhere-opensource-src-5.6.2/qtbase/qtbase.pro -o Makefile ) && C:/SysGCC/Raspberry/bin/make -f Makefile make[1]: 进入目录C:/Qt/qt-build/qtbase' C:/qt/qt-build/qtbase/bin/qmake.exe -o Makefile C:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/qtbase.pro make[1]: Leaving directoryC:/Qt/qt-build/qtbase ' make[1]: 进入目录C:/Qt/qt-build/qtbase' cd src/ && ( test -e Makefile || C:/qt/qt-build/qtbase/bin/qmake.exe C:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/src/src.pro -o Makefile ) && C:/SysGCC/Raspberry/bin/make -f Makefile make[2]: Entering directoryC:/Qt/qt-build/qtbase/src' C:/qt/qt-build/qtbase/bin/qmake.exe -o Makefile C:/qt/qt-everywhere-opensource -src-5.6.2/qtbase/src/src.pro make[2]: 离开目录C:/Qt/qt-build/qtbase/src' make[2]: Entering directoryC:/Qt/qt-build/qtbase/src' cd corelib/ && ( test -e Makefile.qtzlib || C:/ qt/qt-build/qtbase/bin/qmake.exe C:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/qtzlib.pro -o Makefile.qtzlib ) && C:/SysGCC /Raspberry/bin/make -f Makefile.qtzlib make[3]: 进入目录C:/Qt/qt-build/qtbase/src/corelib' C:/qt/qt-build/qtbase/bin/qmake.exe -o Makefile.qtzlib C:/qt/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/qtzlib.pro make[3]: Leaving directoryC:/Qt/qt-build/qtbase/src/corelib'make[3]:C:/Qt/qt-build/qtbase/src/corelib' make[3]: Nothing to be done for先进入目录'。make[3]: 离开目录 C:/Qt/qt-build/qtbase/src/corelib' The syntax of the command is incorrect. make[2]: *** [sub-bootstrap-make_first] Error 1 make[2]: Leaving directoryC:/Qt/qt-build/qtbase/src' make[1]: * [sub-src-make_first] 错误 2 make[1]: 离开目录 `C:/Qt/qt- build/qtbase' make: *** [module-qtbase-make_first] 错误 2 *

0 投票
2 回答
183 浏览

c++ - 使用正射投影裁剪后的边缘伪影

我成功地在 openGL 中使用 VBO 和 IBO 生成了高度图。该数据的全貌如下图所示。我真正想要显示的只是非黑色的数据。当颜色为黑色时,我将 z 值设为零。

这是我生成索引的代码

我的着色器代码

完整数据

不幸的是,在我使用投影矩阵(正交)裁剪 z 值之后。我仍然在边缘得到一些伪影,如下图所示。

这是我的正交投影矩阵

剪裁后

看起来就像openGL自动重新创建了一些三角形,所以它会在边缘(紫色线)周围制作人工制品。

飞涨 在此处输入图像描述

有什么方法可以让这个边缘伪影消失,或者我需要再次定义我的索引?

预先感谢您的帮助。

0 投票
1 回答
389 浏览

python - 因为这段代码的QTabWidget的缺失方法是写的?

根据 python,我的错误在 TabWidget.addTab

这是我的错误 ui.setupUi(window)

我如何修复 //AttributeError: 'QDialog' 对象没有属性 'addTab'

当他试图运行代码时,两行都给了我错误,所以我想不出任何新东西,也不明白我已经阅读了很多解释

0 投票
0 回答
87 浏览

c++ - 计算 te 的阴影贴图

尝试从我的数据中的地形图生成阴影贴图时遇到问题。我已经成功地使用了如下图所示的照明程序(定向照明,方位角:180',仰角:90')。

在此处输入图像描述

最终我需要在那里应用更多阴影,所以我尝试创建 shadowMap

这是我初始化着色器时的代码

这是我绘制场景的代码

这是我分别用于阴影的代码顶点和片段着色器代码

最后一个代码是让我的顶点和片段着色器显示场景+阴影。

我相信通过使用上面的代码,我不需要放置biasMatrix 来规范化纹理。

下图是我现在实现的截图。仍然没有阴影,但上部有黑色伪影(如果我移动灯光位置,它会移动)

在此处输入图像描述

这是我想要实现的图像的示例。 在此处输入图像描述

另外,我需要应用几何变换精度来处理我几何中的高数字(x 和 y 轴)

我不确定我在哪里犯了错误。我怀疑它在矩阵转换中,但不知道要解决这个问题。无论如何,提前感谢您的帮助。

0 投票
1 回答
390 浏览

qt - QWidgets 的“可见”属性的 QPropertyAnimation 只能以一种方式工作

我有一个任务是我需要执行一系列 PropertyAnimations。其中一个动画是改变 QWidget 的可见性。当我试图隐藏它时,它工作得很好:

但是当我反过来尝试时,什么也没有发生:

难道我做错了什么?或者这可能是Qt中的一个错误?如果有帮助,我正在使用 Qt 5.6.1。

0 投票
1 回答
320 浏览

qml - StateMachine 和 State 中的 QML 范围

我阅读了有关 QML 范围的文档。

此文档允许以下内容(在上述文档中的组件实例层次结构第二个示例下):

我的状态机 ( BaseStateMachine.qml):

我的州(BaseState.qml):

我的主要(main.qml):

但我收到以下错误: qrc:/qml/BaseState.qml:4: ReferenceError: someProperty is not defined

我是不是误会了什么?我还阅读了 qml 中关于 StateMachine 的文档,并没有发现 StateMachines 和 States 中的范围界定有任何例外。

更新:

如果我添加一个BaseStateMachine.qml像这样的 id:

然后 QtCreator 就会意识到somePropertyin BaseState.qml. 在“开始意识到”下,我的意思是,如果我 ctrl/command+click 中的属性,BaseState.qml它会将我带到BaseStateMachine.qml. 一旦我从BaseStateMachine.qmlQtCreator 中删除 id 就找不到someProperty了。

0 投票
1 回答
2222 浏览

c++ - 如何使用 QAudioOutput 和 QAudioDecoder 播放 mp3 文件?

我想使用 QAudioOutput 将音频文件播放到指定设备。.wav 文件没问题。但是播放.mp3文件时只是有嗡嗡声(.mp3文件是我知道的压缩文件,所以QAudioOutput不能直接播放)。
我正在尝试在使用 QAudioOutput 之前解码 .mp3 文件,但我不知道如何。
你能给我一个示例代码,以便我们可以使用 QAudioOutput 和 QAudioDecoder 播放 mp3 文件吗?

0 投票
1 回答
1558 浏览

qt - 如何在 QML 中正确保存窗口状态

我阅读了 Qt 文档,查看了 SDK 提供的几个示例,我从源代码构建了 Qt Creator 以了解 Qt 开发人员是如何做到的......仍然没有运气。

我正在为 Windows 和 Mac 开发一个跨平台应用程序。在 Mac 方面,我基本上可以尝试我的任何解决方案,它们都可以完美运行(我想这要归功于 MacOS)。另一方面,在 Windows 上,我总是会发现某种错误或粗略的行为。

在我详细介绍之前,我的问题的根源是支持具有不同分辨率的显示器的多个显示器环境。

简而言之,我的两个主要解决方案:

  1. 由于我主要在 QML 中编写应用程序,因此我将ApplicationWindow其用于主窗口。我保存了我的ApplicationWindow状态Settings。我的代码考虑了先前保存的位置是否仍然有效(例如,如果应用程序在监视器上时关闭,不再可用)......我必须这样做的唯一原因是因为 Windows 只会在“外层空间”中打开我的应用程序窗口(Mac 会自动处理)。如果我在其中一个监视器上关闭我的应用程序,然后我更改其他监视器的缩放因子,然后我重新打开我的应用程序,我的应用程序(在 Windows 上)会进入一个非常奇怪的状态。它在正确的显示器上打开,但它的比例太大了,UI 元素只是奇怪地浮动。如果我调整窗口大小,一切都会恢复正常。
  2. 我将 QML 暴露ApplicationWindow给放入 QWidget 容器中的 C++,然后我QMainWindow通过将其设置为setCentralWidget. 使用这种方法,我可以访问saveGeometryand restoreGeometry,它会自动处理多个显示器的定位,但我在 1. 中描述的缩放异常仍然存在。

有人解决了这个问题吗?在此先感谢您的帮助和欣

0 投票
0 回答
377 浏览

c++ - 调用 setValue(0) 时的 QProgressDialog

我有一个继承自 QProgressDialog 的类。它有时会崩溃及其内部的 QProgressDialog 类代码。

我检测到当setValue(0);在其构造函数中调用时,会发生崩溃。当我注释掉这个函数时,它不会崩溃。即使在构造对象后调用 setValue(0) 仍然会发生崩溃。

当信号发射得更快时会发生这种崩溃。代码片段显示了函数的调用方式:

进度信号在另一个线程的 myFunc() 内部发出。在这个函数中,在一个文件夹中读取多个文件并发出进度信号。

为什么会发生这种崩溃?

提前致谢。

0 投票
0 回答
121 浏览

qt - QWebEngineView 构造函数静默退出

对于没有必要 OpenGL 功能的 Windows 计算机,尝试QWebEngineView静默创建对象会导致进程exit(). 没有错误信息,没有异常,只是退出。我的问题是如何捕捉这种情况以告诉用户更新 OpenGL 驱动程序?