问题标签 [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.

0 投票
0 回答
378 浏览

c++ - 移动鼠标区域后如何获取 qml 元素的 x,y, 值?

使用Qt5官方发布——

我需要保存图像元素的 x,y 属性。这个

给出属性最初设置的值,但我需要的是鼠标移动图像后的当前值。我可能遗漏了一些简单的东西,但我在上面找不到任何其他东西。真的很感激任何帮助,谢谢。

0 投票
1 回答
4882 浏览

multithreading - Qt:QObject 移动到不同线程后,信号/插槽不起作用

我正在使用 Qt5,我通过 moveToThread() 将 QObject 工作线程传递给 QThread 的实例来实现线程。我的实现看起来像这样..

工人.h

工人.cpp

主窗口.h

主窗口.cpp

不知道为什么以下两个信号/插槽对似乎不起作用

因此,一旦do_Work()插槽被started()QThread 对象的信号触发,我就无法启动或停止线程。仅供参考,我的这篇文章是我之前在这里描述的文章的延续。任何见解都会有所帮助......谢谢

0 投票
3 回答
1786 浏览

c++ - Qt 5.0 和 c++11 与 OSX Mountain Lion

离开 7 年后,我再次尝试 C++。我已经下载了新发布的用于 osx 的 Qt 5.0 sdk,但我无法获得使用 Qt Creator 编译的基本 c++11 功能。以下声明:

导致编译错误:

我用谷歌搜索了类似的问题,并找到了建议

在 .pro 文件中。不幸的是没有成功。在无法识别的命令行选项上构建失败。

我一定做错了什么。有什么建议么?

谢谢,

弗兰斯

0 投票
1 回答
2211 浏览

c++ - 在 QML 中使用 C++-slot,它返回命名空间中的类型

我首先要提一下,在 Qt 5.0.0 beta 1 之前,以下内容可以正常工作(可能还有 beta 2 和 RC,不知道),但在 Qt 5.0.0 最终版本中失败了。我只想参考在 Qt 5.0.0 最终发布版本中看到的结果。所以这很可能与 Qt5 最近的变化有关。

在 C++ 方面,我在命名空间中有一组类(QObject 派生)(可以选择使用编译器标志触发;这些类位于单独的库中,并且该库将命名空间的使用作为选项留给图书馆)。这里的一个类Game可能如下所示(摘录):

OAE_BEGIN/END_NAMESPACE扩展为namespace OAE_NAMESPACE {...}或什么都没有,就像 Qt 在 中所做的那样<qglobal.h>,只是将宏名称中的“QT”替换为“OAE”:

在下文中,当说“启用命名空间”时,我的意思是我声明了宏OAE_NAMESPACE,在本例中为值oae

其中,我访问了这个类的实例以及从 QML 中Player返回的类的实例,用于我的应用程序的用户界面。player()为此,我按如下方式注册类:

我为 QML 前端提供了一个指向 a 实例的指针,在 QMLGame中调用theGame

在 QML 中,我照常使用它。一个小例子应该打印一个指针地址player()

我得到以下结果,具体取决于我是否设置了 a OAE_NAMESPACE(顺便说一句:我对库和使用它的应用程序使用相同的设置):

  • 禁用 namespace时,一切都按预期工作,QML 向我打印指针:

    /li>
  • 启用命名空间时(以及using它在使用库的 C++ 代码中,所以我根本不更改代码),QML 无法理解的返回类型Game::player()

    /li>
  • 返回类型更改Game::player()to 时 oae::Player*,一切正常:

    /li>

到目前为止,我的结论是moc不考虑我放在类周围的名称空间。我的第一个猜测是:嘿,moc不知道我在调用时定义了命名空间g++,这是我在 .pro 文件中所做的:

但是,当将返回类型更改为 时OAE_NAMESPACE::Player*,它仍然有效,因此 moc确实知道OAE_NAMESPACE宏,但它既不扩展OAE_BEGIN/END_NAMESPACE宏,也不再解析命名空间。

moc生成以下“stringdata”,Player * Game::player() const其中包含方法的返回类型:

  • 禁用命名空间并使用返回类型时Player*

    /li>
  • 启用命名空间并使用返回类型时Player*

    /li>
  • 启用命名空间并使用返回类型时OAE_NAMESPACE::Player*

    /li>

另一方面,如果启用,则在命名空间moc返回的类名前面加上命名空间。QMetaObject::className()

我现在的结论是,我可以通过编写OAE_NAMESPACE::ClassName而不是ClassName在 QObject 元方法的签名中使用这些类型来解决这个问题。(嗯,有更好的宏OAE_PREPEND_NAMESPACE)。由于这在代码中看起来很糟糕,而且对我来说它甚至似乎是错误的,因为该方法已经在 namespace中,有没有更好的解决方案?

现在也有OAE_BEGIN/END_MOC_NAMESPACE(类似于QT_BEGIN/END_MOC_NAMESPACE),所以也许我在任何地方都需要那些?我不知道它们在 Qt 中的何处/如何使用,因此我应该在我的库中相应地使用它们,因为我想使用与 Qt 相同的可选命名空间功能。

0 投票
2 回答
12229 浏览

qt - 如何为 Windows 安装开源 Qt 库 5 二进制版本

这个问题专门针对Qt libraries 5.0.0 for Windows (VS 2010 406 MB)http://qt-project.org/downloads 但我认为它也将适用于未来的 5.xx 版本),并将其安装在“干净的”Windows 工作站上。

需要什么才能让它工作?我追求的是最小的下载包集,这意味着“完全合格”下载名称的有序列表,最好带有指向 Microsoft 下载的链接。

来自同一下载页面的最新 Qt Creator 将用作 IDE,因此不需要安装 Visual Studio,如果可以避免,确实会更好。

我目前的理解是,我需要找到 VC++ Express,然后找到它的 SP1 更新,然后找到调试包以获取 Qt Creator 的调试器后端。不确定我是否需要 Windows SDK 包,或者是否可以将 VS 替换为某些版本的 Windows SDK。不,qt-project 网页没有回答这个问题,对于这个特定场景的说明非常模糊(使用二进制库下载而没有完整的非免费 Visual Studio 2010)。

0 投票
2 回答
9495 浏览

qt - 在 C++ 中创建 QML 元素?

我有以下问题:

我将初始界面加载到QQuickView使用.qml文件中。然后我想使用 C++ 向接口添加QML 类型,如Image或。Text

我知道我可以从 C++ 中操作现有元素,但是如何创建新类型并添加它们?

0 投票
1 回答
1446 浏览

c++ - 使用什么 Qt GUI 容器?还有相关的视频显示问题 - Windows 7

我正在尝试设计一个应用程序来播放多个视频(媒体)文件并允许用户对每个文件进行修改(例如,缩放、旋转、反转视频等)。我从学习开始Phonon,但在研究了一段时间后,读到 >= 不再支持它(或者它的支持值得怀疑)Qt5。所以然后我回去了,现在我在看 qtmultimedia - QMediaPlayer。虽然我来自 c#-WPF 背景,但我在 Qt-C++ 上做了一些早期的工作。但这一次,我对必须使用哪些小部件感到困惑和困惑。可以在和QMediaPlayer上显示其输出(视频QVideoWidget)。由于我需要旋转等功能,我相信我必须合并 QGraphicsScene/View。QGraphicsVideoItemQAbstractVideoSurface

<1> 那么方法应该是什么?我这样做了:使用QVideoWidget->QGraphicsProxyWidget通过它的setWidget() 添加了这个(虽然setWidget() 需要QWidget* 并且QVideoWidget不是从QWidget我在 Qt 助手中看到的那样派生 - 为什么这允许顺便说一句?) -> 将它添加QGraphicProxyWidgetQGraphicsScenevia addItem() ->在构造它时将其添加到 -> 添加到QGraphicsScenevia ( ) 。这样好吗?何时使用和?QGraphicsViewQGraphicsViewQMainWindowsetCentralWidgetQGraphicsVideoItemQAbstractVideoSurface

<2> 当QVideoWidget以以下方式添加多个时,我看不到任何视频或视频QVideoWidget本身(我已经画了以区分它)。我究竟做错了什么?(虽然有音频输出):

<3> 在我进一步研究之前,我是在 Qt 中选择正确的工具来操作我之前提到的视频还是需要做其他事情?

0 投票
3 回答
3183 浏览

c++ - 将 Qt4 移植到 Qt5:未解析的外部符号

Qt5 是新一代的 Qt,它有一些变化。

我有一个使用 Qt4 构建的项目。我已经下载了 Qt5-VisualStudio2010 包,我正在尝试将我的项目从 Qt4 移植到 Qt5。出现问题。

所有“包含”路径都已得到很好的修复。但是,编译器现在报告了数百个“未解析的外部符号”(几乎所有的函数调用,听起来编译器都找不到任何 .lib 文件)。我什至尝试添加在 Qt SDK 文件夹中找到的所有 .lib 文件,但没用。最基本的类和方法: QApplication::exec(...) 也报告为“未解析的符号”。

项目文件已更改为适合 Qt5 打包:

有人对这个新版本的 Qt 有过类似的经验吗?

0 投票
1 回答
2126 浏览

c++ - 使用 Qt 播放特定的系统声音

我希望我的应用程序发出标准的通知声音,在 Windows 上称为“默认哔声”。我没有看到用 QSound 引用系统声音的方法。没有分配声音的 QSound 实例用于播放此声音,但在 Qt 5 中已修复。有什么办法吗?

如果该解决方案仅适用于 Windows 也没关系(但我希望它在任何受支持的操作系统上编译并且不想使用#ifdef和 Win API)。

0 投票
1 回答
8847 浏览

qt5 - 使用 QNetworkAccessManager 从 ftp 服务器获取文件列表的 Qt 代码

我正在 Qt 中编写一个简单的FTP客户。我正在使用Qt 5.0

我已经编写了一个代码来使用Qt 5.0中已弃用的QNetworkAccessManageras下载和上传文件。QFtp

我想编写一个代码来获取FTP上所有文件的列表。我得到了使用QFtp但不使用的解决方案QNetworkAccessManager。建议我怎么做。