问题标签 [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++ - 移动鼠标区域后如何获取 qml 元素的 x,y, 值?
使用Qt5官方发布——
我需要保存图像元素的 x,y 属性。这个
给出属性最初设置的值,但我需要的是鼠标移动图像后的当前值。我可能遗漏了一些简单的东西,但我在上面找不到任何其他东西。真的很感激任何帮助,谢谢。
multithreading - Qt:QObject 移动到不同线程后,信号/插槽不起作用
我正在使用 Qt5,我通过 moveToThread() 将 QObject 工作线程传递给 QThread 的实例来实现线程。我的实现看起来像这样..
工人.h
工人.cpp
主窗口.h
主窗口.cpp
不知道为什么以下两个信号/插槽对似乎不起作用
因此,一旦do_Work()
插槽被started()
QThread 对象的信号触发,我就无法启动或停止线程。仅供参考,我的这篇文章是我之前在这里描述的文章的延续。任何见解都会有所帮助......谢谢
c++ - Qt 5.0 和 c++11 与 OSX Mountain Lion
离开 7 年后,我再次尝试 C++。我已经下载了新发布的用于 osx 的 Qt 5.0 sdk,但我无法获得使用 Qt Creator 编译的基本 c++11 功能。以下声明:
导致编译错误:
我用谷歌搜索了类似的问题,并找到了建议
在 .pro 文件中。不幸的是没有成功。在无法识别的命令行选项上构建失败。
我一定做错了什么。有什么建议么?
谢谢,
弗兰斯
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>启用命名空间时(以及
/li>using
它在使用库的 C++ 代码中,所以我根本不更改代码),QML 无法理解的返回类型Game::player()
:将返回类型更改为
/li>Game::player()
to 时oae::Player*
,一切正常:
到目前为止,我的结论是moc
不考虑我放在类周围的名称空间。我的第一个猜测是:嘿,moc
不知道我在调用时定义了命名空间g++
,这是我在 .pro 文件中所做的:
但是,当将返回类型更改为 时OAE_NAMESPACE::Player*
,它仍然有效,因此 moc确实知道OAE_NAMESPACE
宏,但它既不扩展OAE_BEGIN/END_NAMESPACE
宏,也不再解析命名空间。
moc
生成以下“stringdata”,Player * Game::player() const
其中包含方法的返回类型:
禁用命名空间并使用返回类型时
/li>Player*
:启用命名空间并使用返回类型时
/li>Player*
:启用命名空间并使用返回类型时
/li>OAE_NAMESPACE::Player*
:
另一方面,如果启用,则在命名空间moc
返回的类名前面加上命名空间。QMetaObject::className()
我现在的结论是,我可以通过编写OAE_NAMESPACE::ClassName
而不是ClassName
在 QObject 元方法的签名中使用这些类型来解决这个问题。(嗯,有更好的宏OAE_PREPEND_NAMESPACE
)。由于这在代码中看起来很糟糕,而且对我来说它甚至似乎是错误的,因为该方法已经在 namespace中,有没有更好的解决方案?
现在也有OAE_BEGIN/END_MOC_NAMESPACE
(类似于QT_BEGIN/END_MOC_NAMESPACE
),所以也许我在任何地方都需要那些?我不知道它们在 Qt 中的何处/如何使用,因此我应该在我的库中相应地使用它们,因为我想使用与 Qt 相同的可选命名空间功能。
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)。
qt - 在 C++ 中创建 QML 元素?
我有以下问题:
我将初始界面加载到QQuickView
使用.qml
文件中。然后我想使用 C++ 向接口添加QML 类型,如Image
或。Text
我知道我可以从 C++ 中操作现有元素,但是如何创建新类型并添加它们?
c++ - 使用什么 Qt GUI 容器?还有相关的视频显示问题 - Windows 7
我正在尝试设计一个应用程序来播放多个视频(媒体)文件并允许用户对每个文件进行修改(例如,缩放、旋转、反转视频等)。我从学习开始Phonon
,但在研究了一段时间后,读到 >= 不再支持它(或者它的支持值得怀疑)Qt5
。所以然后我回去了,现在我在看 qtmultimedia - QMediaPlayer
。虽然我来自 c#-WPF 背景,但我在 Qt-C++ 上做了一些早期的工作。但这一次,我对必须使用哪些小部件感到困惑和困惑。可以在和QMediaPlayer
上显示其输出(视频QVideoWidget
)。由于我需要旋转等功能,我相信我必须合并 QGraphicsScene/View。QGraphicsVideoItem
QAbstractVideoSurface
<1> 那么方法应该是什么?我这样做了:使用QVideoWidget
->QGraphicsProxyWidget
通过它的setWidget
() 添加了这个(虽然setWidget
() 需要QWidget
* 并且QVideoWidget
不是从QWidget
我在 Qt 助手中看到的那样派生 - 为什么这允许顺便说一句?) -> 将它添加QGraphicProxyWidget
到QGraphicsScene
via addItem
() ->在构造它时将其添加到 -> 添加到QGraphicsScene
via ( ) 。这样好吗?何时使用和?QGraphicsView
QGraphicsView
QMainWindow
setCentralWidget
QGraphicsVideoItem
QAbstractVideoSurface
<2> 当QVideoWidget
以以下方式添加多个时,我看不到任何视频或视频QVideoWidget
本身(我已经画了以区分它)。我究竟做错了什么?(虽然有音频输出):
<3> 在我进一步研究之前,我是在 Qt 中选择正确的工具来操作我之前提到的视频还是需要做其他事情?
c++ - 将 Qt4 移植到 Qt5:未解析的外部符号
Qt5 是新一代的 Qt,它有一些变化。
我有一个使用 Qt4 构建的项目。我已经下载了 Qt5-VisualStudio2010 包,我正在尝试将我的项目从 Qt4 移植到 Qt5。出现问题。
所有“包含”路径都已得到很好的修复。但是,编译器现在报告了数百个“未解析的外部符号”(几乎所有的函数调用,听起来编译器都找不到任何 .lib 文件)。我什至尝试添加在 Qt SDK 文件夹中找到的所有 .lib 文件,但没用。最基本的类和方法: QApplication::exec(...) 也报告为“未解析的符号”。
项目文件已更改为适合 Qt5 打包:
有人对这个新版本的 Qt 有过类似的经验吗?
c++ - 使用 Qt 播放特定的系统声音
我希望我的应用程序发出标准的通知声音,在 Windows 上称为“默认哔声”。我没有看到用 QSound 引用系统声音的方法。没有分配声音的 QSound 实例用于播放此声音,但在 Qt 5 中已修复。有什么办法吗?
如果该解决方案仅适用于 Windows 也没关系(但我希望它在任何受支持的操作系统上编译并且不想使用#ifdef
和 Win API)。
qt5 - 使用 QNetworkAccessManager 从 ftp 服务器获取文件列表的 Qt 代码
我正在 Qt 中编写一个简单的FTP客户端。我正在使用Qt 5.0。
我已经编写了一个代码来使用Qt 5.0中已弃用的QNetworkAccessManager
as下载和上传文件。QFtp
我想编写一个代码来获取FTP上所有文件的列表。我得到了使用QFtp
但不使用的解决方案QNetworkAccessManager
。建议我怎么做。