问题标签 [qt5.7]
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.
c++ - GraphicsView 缩小比例问题
我的工作环境:Qt 5.8 MSVC2015 64bit, QT GraphicsView, Windows 7 64 bit
当 GraphicsView 垂直滚动条消失时,缩小应该停止。
所以我尝试了下面的代码,但它失败了:
任何建议我该怎么做才能修复上述代码?
c++ - QT Windows GUI - 如何在没有 qtsingleapplication 的情况下每次只打开一次实例
我正在使用 QT for Windows 开发应用程序,我遇到以下问题: 1. 一些用户正在打开同一应用程序的多个实例,这是不允许的。如何控制每个用户只打开一次应用程序,而不使用 qtsingleapplication?
c++ - Qt C++ 错误没有匹配函数调用'QString::QString(KeySequence)'
我将 Qt 4.8.4 用于我用 C++ 编写的 GUI 项目。现在我合并到 Qt 5.7 版。经过漫长的代码调整过程,我终于打开了我的 GUI。但是当我运行我的计算代码时,我仍然得到这个错误:
调用 'QString::QString(KeySequence)' 没有匹配的函数
在这些行中:
似乎使用 QKeySequence 是错误的。从 Qt 站点我看不到问题所在。
有人知道出了什么问题吗?
谢谢 !
这是(部分)我的代码:
qt - QGraphicsView Scale & QGraphicsRectItem 绘画未能调用
我的工作环境:Qt 5.8 MSVC2015 64bit, QT GraphicsView, QGraphicsRectItem, Windows 7 64 bit。
问题:当我放大和缩小 GraphicsView 时,我调用 GraphicsView 缩放方法。但是当我将 QGraphicsRectItem 添加到场景时,它未能调用其绘制方法。
我的班级层次结构:
代码 :
//////*****在QGraphicsRectItem中绘制矩形*****///////////
这是git代码
我花了几天和几个小时,但仍然无法找出为什么 QGraphicsRectItem 在调用 scale 方法时无法打印。任何建议都受到高度赞赏?
c++ - 强制系统 QT 库使用应用程序附带的 openssl 库
我的应用程序 = libssl.so ( 1.0.2f
) + libcrypto.so ( 1.0.2f
) +my_app_exe
在 Debian 9 上,QT 版本是5.7
,openssl 是1.0.2l
my_app_exe
返回1.0.2l
for QSslSocket::sslLibraryVersionString()
,表示其使用系统 openssl 版本。
我可以强制 QT 库以某种方式使用与我的应用程序一起提供的 openssl 吗?
我尝试使用 设置库路径QCoreApplication::addLibraryPath(const QString &path)
,但 QT 库仍然选择系统 openssl 版本。
约束:
- 无法重新编译系统上存在的 QT 库
- 无法与应用程序一起发布 QT 库
- 无法更改系统 QT 库上的 RPATH
my_app_exe
已经使用RPATH
which 指向随附的 openssl 所在的当前目录。
c++ - 如果 find_package() 和 qt5_use_modules() 从函数中调用,为什么 AUTOMOC 会失败?
我正在尝试编译一些 Qt 项目,包括 QCustomPlot 库。作为一个最小的例子,我建立了一个项目,包括:
原始项目更大,但仅使用这些文件就可以重现问题。
包含此CMakeLists.txt
代码:
如果所有标记的行(1)
或标记的所有行都(3)
被注释掉,这意味着调用find_package()
或qt5_use_modules()
在文件范围内,我得到一个包含两个 qcustomplot 文件和一个附加Plots_automoc.cpp
. 附加文件是自动生成的,包含必要#include "moc_qcustomplot.cpp"
的文件,项目可以正确编译和链接。
但是,一旦我将所有与 qt 相关的命令移动到函数中,该automoc.cpp
文件就不再生成并且不再是项目的一部分,这会导致unresolved external symbol
链接过程中出现很多问题。
仅调用单个find_package()
on files 范围(如 line (2)
)可以解决问题并再次生成 automoc 文件。
为什么简单地将调用移动到函数中会改变这样的 automoc 行为,我如何才能实现仍将它们移动到函数中?
一点背景:我的项目中已经有很多目标,预计数量会迅速增长,并希望避免代码冗余。没有真正受过 CMake 培训的人也应该使用它。这就是为什么我试图将所有与 Qt 相关的命令移动到函数中并提供这样的命令:
除了 Qt,我已经实现了这一点......
我也尝试过使用
它会导致相同的结果,只要不是至少一个find_package()
调用直接在文件范围内,就不会生成 automoc。
我正在使用 CMake 3.6.2、Qt 5.7、Visual Studio 2015 和 Win 10。
其他示例 oLen 通过他的回答解决了我的大部分潜在困惑,但仍然存在一种情况:
使用带有 标记(4)
的行将目标的所有生成放入一个函数中,可以使 CMake 正常运行,即已qt5_use_modules()
定义,能够找到所有模块并链接它们(例如正确设置包含目录)。在函数之外,我不依赖任何 Qt 函数设置的变量。但 automoc 仍然不会生成所需的 .cpp 文件。注释掉标记的行会再次运行 automoc。
arm - QT5.7 交叉编译 AM1808 ARM9
目前,我们正在为我们在 AM1808 处理器上运行的硬件开发 QT。
目前,我们使用 QT creator 和编译器版本 Qt 4.8.7 开发我们的应用程序。
我们计划用 Qt 5.7 升级它,为此,我们从
我们成功下载了这个,现在需要根据我们当前的arm工具链进行配置。
我们已按以下方式修改了 qmake.conf,
之后,我们运行配置命令 ./configure -opensource -confirm-license -prefix /usr/local/Qt5 -no-pch -xplatform linux-arm-gnueabi-g++
但是我们发现了以下错误,
系统架构:'arm' 主机架构:'i386' arm-none-linux-gnueabi-g++ -c -fvisibility=hidden fvisibility.c 符号可见性控制已启用。
cc1plus:错误:无法识别的命令行选项'-fuse-ld=gold' arm-none-linux-gnueabi-g++ -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c bsymbolic_functions.c:2: 2:错误:#error“此架构上的符号函数绑定可能被破坏,禁用它(参见 QTBUG-36129)。”
符号函数绑定已禁用。检查 C++14...
arm-none-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++1y -Wall -W -fPIC -I。-I../../../mkspecs/linux-arm-gnueabi-g++ -o c++14.o c++14.cpp
cc1plus:错误:无法识别的命令行选项 '-std=gnu++1y' make: *** [c++14.o] 错误 1
禁用 C++14。
检查默认 C++ 标准版... arm-none-linux-gnueabi-g++ -pipe -O2 -Wall -W -fPIC -I。-I../../../mkspecs/linux-arm-gnueabi-g++ -o c++default.ii -E c++default.cpp
默认启用 C++ 标准版。
检查 64 位 std::atomic... arm-none-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++11 -Wall -W -fPIC -I。-I../../../mkspecs/linux-arm-gnueabi-g++ -o atomic64.o atomic64.cpp
cc1plus:错误:无法识别的命令行选项'-std=gnu++11'
制作:*** [atomic64.o] 错误 1
64 位 std::atomic 已禁用。
检查 -latomic 中的 64 位 std::atomic... arm-none-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++11 -Wall -W -fPIC -I。-I../../../mkspecs/linux-arm-gnueabi-g++ -o atomic64.o atomic64.cpp
cc1plus:错误:无法识别的命令行选项'-std=gnu++11'
制作:*** [atomic64.o] 错误 1
-latomic 中的 64 位 std::atomic 已禁用。
检查 std::atomic 的函数指针... arm-none-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++11 -Wall -W -fPIC -I。-I../../../mkspecs/linux-arm-gnueabi-g++ -o atomicfptr.o atomicfptr.cpp cc1plus:错误:无法识别的命令行选项'-std=gnu++11'
make: *** [atomicfptr.o] 错误 1
std::atomic 禁用函数指针。
错误:检测到函数指针失败的 std::atomic 实现。
请应用与您的标准库供应商对应的补丁,该补丁位于 /opt/qt-everywhere-opensource-src-5.7.1/qtbase/config.tests/common/atomicfptr
所以,请建议我们正确的方法来编译这个 qt5 版本。
c++ - windows Qt 5.7 minwg 5.3 mariadb 10.2 QSqlDatabase:未加载 QMYSQL 驱动程序
我在网上搜索了 10 个小时。有很多解决方案,但没有一个有效。我想知道从哪里开始。我只需要一个线索。我应该构建我的驱动程序还是有一种方法我不需要这样做。我应该使用mysql 连接器中的libmariadb或libmysqldb哪些文件???
请帮忙 ;)
...
...
...