问题标签 [qt5]
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++ - Qt Creator 2.6.1 + Qt 5 + C++11 + MSVC2010 编译器
我正在尝试使用 Qt 在 Windows 上构建 C++ 应用程序。
我的设置是:
- 已安装 Vs2008,2010,2012
- 安装 Qt 5 RC1
现在,当我#include 并尝试使用 std::unique_ptr 它告诉我它没有定义,所以我查看了 VS2010 标头并看到需要定义 _HAS_CPP0X,所以我将它添加到 .pro 作为 DEFINES += _HAS_CPP0X
这仍然没有效果,所以我 ctrl+clicked #include 内存只是为了找到它使用的内存头:
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include
里面真的没有任何 std::unique_ptr !
当然它应该看:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include ?
我想我会通过完整路径包含内存,但这仍然失败,包含的内存头本身与 C++11 相关的错误,例如移动和右值引用。
所以我想知道的是:
- Windows 上的 Qt 可以使用 Vs2010 支持的 C++11 功能吗?
- 如果是,那怎么办?
- 如果不是,那么我非常失望,因为在 Linux 上开发跨平台 Qt 5 应用程序意味着它不是跨平台的,因为它不可能为任何其他平台构建它!
编辑:
这样解决方案就很清楚了:下载 Qt5 的源代码并使用 MinGW 构建它,您将一切就绪(包括已接受答案中的 C++11 pro 选项)。
c++ - Qt5 lambda 连接内存泄漏的新信号
新的 Qt5 信号和槽语法使我们不仅可以将信号连接到槽,还可以连接到普通的旧函数和仿函数/lambdas。现在的问题是,lambda 本质上是带有 () 运算符的对象,当您将信号连接到它们时,它们会被复制到 qt 内部类的某个地方。而且,当您从该函子断开信号时,它会保留在 qt 内部。我不明白,这是正常的行为吗?或者也许有办法在断开连接后销毁那些功能对象?
这是一个例子:
现在,当我在插槽断开后查看连接变量的强引用计数时,它保持为 2,这意味着仿函数对象本身仍然活着并且很好,尽管它现在对我没有用。我错过了什么吗?
qt - 进度条周围有不同文本颜色的进度条?
如何从 Qt 中为 QProgressBar 中的文本获得以下效果?:
我的想法是我必须在进度条的左侧有一个更亮的颜色。
qt - 如何在 Qt5 和 QML 中使用 QtQuick.Window 元素?
我最近为 Mac OS X 安装了 Qt5 RC2 并开始开发一些 QML 应用程序。看了新元素后,特别想试试Window和Screen Element。(http://qt-project.org/doc/qt-5.0/qtquick/qmlmodule-qtquick-window2-qtquick-window-2.html)
所以我将导入设置在文件的顶部,如下所示:
导入 QtQuick 2.0
导入 QtQuick.Window 2.0
找到了导入,但我既不能使用 Window 也不能使用 Screen。每次我键入 Screen 或 Window 时都会出现一个错误,上面写着“未知组件(M300)”
有谁知道问题是什么?
unicode - QTextCodec::setCodecForCStrings 在 Qt5 中已消失
我的项目中所有显示的文本都是希腊语。我没有使用tr()
,直接使用希腊字符。对于我使用的正确编码:
Qt5拿走setCodecForCStrings
了,所有的字符都显示为"???????"
。有解决方法吗?
请注意这是一个大项目,我想避免对程序中的每个字符串都使用代码。
c++ - 如何将 Qt5 和 Qt Creator 2.6.1 与 VS 2012 的编译器一起使用?
官方下载现在只包括 VS 2010 的 Qt 库 5.0.0。我在 VS 2012 Express 中尝试过,但收到错误消息“错误:LNK2038:检测到'_MSC_VER'不匹配:值'1600'与值'1700'不匹配......”
我必须安装 VS 2010 还是在 VS 2012 中编译 Qt5 的整个源代码?
更新:我的 IDE 是 Qt Creator 2.6.1。我只在 VS 2012 中使用 C++ 编译器,因为官方下载中还没有用于 minGW 的 Qt 库 5.0.0。
UPDATE-2(2013-1-1):今天看到了,官方博客说:
我们仍在为 5.0 系列做一些事情。我们有要修复的错误。我们目前没有 MinGW(因为 WebKit 还不能使用它)和 MSVC 2012(你需要从源代码编译)的二进制包,我们将尽快提供这些。目前的计划是在 1 月底之前的某个时间发布第一个补丁级别版本 5.0.1。
UPDATE-3(2013-1-31): 终于来了,但只为 MinGW 4.7 添加了 Qt 5.0.1 。
UPDATE-4(2013-7-06):经过漫长的等待,Qt 5.1.0 for Windows 32-bit (VS 2012, 511 MB)添加。
qt - 如何使用 cuda 构建 Qt5 项目?
我有一个用 Qt(Win32,VS2010)和 CUDA 编写的项目,我的 cu 文件包含 Qt 头文件。当我尝试使用新的 Qt 5.0(Qt 4.8.3 可以)构建我的项目时,出现以下错误:
我创建了一个简单的项目来重现该错误并被重现。我相信任何带有 CUDA 的 Qt 项目都可以重复使用 Qt 头文件。但是,我添加了简单的代码来重现下面的错误。谁能帮我?
test1.pro 文件:
kernel.cu 文件:
c++ - Qt5 使用 QWidget 和 QtQuick2
Qt5 和 QtQuick2 的组合存在一些问题。每当您想使用许多基于 QWidget 的类时,您首先会遇到以下问题:
您应该使用QApplication
而不是 Qt5 的QGuiApplication
. 那么这很容易改变,对吧?
所以现在我正在使用QApplication
,但每当我尝试使用基于 QWidget 的类时,我的程序要么崩溃,要么导致一些无意义的错误消息。
那我应该如何将旧的 QWidgets 与 Qt5 一起使用?我知道它们不是 Qt5 的最佳解决方案,但它们非常有用......
PS我正在Linux中为所有平台开发我的应用程序。
我还使用自动生成的 QtQuick2ApplicationViewer 类来渲染基于 QtQuick 2.0 的应用程序。
qt - 如何让 Qt 5.0 与 Qt Creator 2.5.2 一起工作?
我刚刚下载了 Qt 5.0 的源代码并在 Ubuntu 12.10 64 位上编译了它。运行sudo make install
似乎已将文件复制到/usr/local/Qt-5.0.0
:
到现在为止还挺好。但是当我启动 Qt Creator 2.5.2 并尝试将其指向新版本时,我收到了一个不寻常的错误:The default mkspec symlink is broken
.
什么可能导致这种错误?下面的所有符号链接/usr/local/Qt-5.0.0/mkspecs
都是有效的。的输出qmake -query
如下:
我还应该指出,我没有在这台机器上安装 Qt 4.x 开发文件:
qt5 - Qt5 qconfig.h 很奇怪
这是我的上下文:我在 Windows 上使用 OpenGL 编译图形引擎,所以我包含了 glext.h。惊喜,它与 Qt5 中的 gl2.h 冲突 ..
我发现如果定义了 QT_OPENGL_ES_2,则包含 gl2.h(来自 gles2)。然后我发现默认定义了 QT_OPENGL_ES_2,我无法定义 QT_NO_OPENGL_ES_2 ...或者我不明白以下代码是如何应该可以工作(顺便说一句,我的 qconfig.h 中的每个块 - 来自 Qt5 msvc10 离线安装程序的块 - 看起来像这样):
也许是因为我睡得不多,但看起来很奇怪。但是在没有定义 QT_OPENGL_ES_2 并且定义了 QT_NO_OPENGL_ES_2 的情况下,我很确定(我的 4 个非睡眠神经元)它进入第二个分支并定义了 QT_OPENGL_ES_2 ...
如果我是他们,我会写:
感谢您的时间 :)