草庐IT

c++ - 使用 QML 绘制图形项目的最佳方式是什么?

在我的QML应用程序中,我需要常见的QGraphicsScene和QGraphicsObject可能性,例如检测碰撞、“可移动”和“可选择”标志、拖放等。我应该从QQuickItem继承类还是使用QMLCanvas?当然,我想编写更少的代码并选择“QML方式”。 最佳答案 对于QML中的碰撞检测,您可以使用Box2DQML插件。它有很多好的功能,可以从here下载。.您也可以自己实现碰撞检测。例如通过检查这个:Math.sqrt((ball1.x-ball2.x)*(ball1.x-ball2.x)+(ball1.y-ball2.y

c++ - 我的 QSqlQueryModel 不在 ListView 中显示数据

我一直在玩QSqlQueryModel,但我现在完全卡住了。我一整天都在寻找解决方案,但到目前为止还没有成功。我所做的工作是它从我的sqlite数据库中提取数据,但由于某种原因我无法在我的ListView中显示它。看起来我的角色名不存在。我收到类似....ReferenceError:idisnotdefined.....对于我从数据库中提取的每一行的消息。我使用了一个例子:http://qt-project.org/wiki/How_to_use_a_QSqlQueryModel_in_QML我已经尝试了这两个示例,但我总是遇到同样的问题。我的ccp文件看起来像这样......#in

c++ - QQuickItem 派生类的高 DPI 缩放

我在我的应用程序中将QtQuickControls2与QQuickItem派生类一起使用。在我设置AA_EnableHighDpiScaling属性后,所有QQuickControls2组件在我的智能手机上看起来都正确,但我的自定义类的对象缩放不正确。这是没有HighDpi缩放和最小缩放的应用程序(它的工作方式):这是最小缩放比例的:似乎在第二个屏幕上对象被缩放太多,我可以看到我用QPixmap或QImage绘制的所有纹理的方形像素。但是,我从外部存储器和QSGGeometryNode等节点加载的图像看起来是正确的。我可以只关闭一个特定QQuickItem的缩放吗?如果不是,我应该设置

c++ - 从字节数组加载到 Qml 中的图像

我在Qt中创建了一个C++类来读取文件,并将它们转换为字节数组,这样我就可以将它们存储在数据库中,我如何处理字节数组数据,例如在qml中设置图像源,将此字节数组转换为qml中相关类型的正确方法是什么这是我的类(class):#ifndefUFILE_H#defineUFILE_H#include#includeclassUFile:publicQObject{Q_OBJECTQ_PROPERTY(QByteArraydataREADdataNOTIFYdataChanged)Q_PROPERTY(QStringpathREADpathWRITEsetPathNOTIFYpathChan

c++ - 如何使 OpenGL 视口(viewport)具有渲染到其中的 QML 项目的确切大小和位置?

我正在尝试在1280x720窗口中呈现一个640x360红色方block。问题是OpenGL的视口(viewport)不会自动位于Qt窗口系统中正方形占据的区域内。也就是说,如果我的视频对象有640x360尺寸,OpenGl视口(viewport)仍然有1280x720尺寸(为什么?)。无论如何,我可以通过使用glViewport(this->x,this->y,this->width,this->height);来解决这个问题。问题在于,在OpenGL中,坐标系的原点在左下角,this->x,this->y,this->width,this->height来自对象的坐标在QML语法中

c++ - QDeclarativeExtensionPlugin 与 QML 通信

我正在编写MeeGoProcess查看器应用程序,但在QML和C++通信时遇到问题。类(class)概览列表项-一个Q_OBJECT并由列表模型使用列表模型-这个类实现了QAbstractListModel插件-此类从QDeclarativeExtensionPlugin实现,用于创建QML可以使用的库。#include#includevoidProcPlugin::registerTypes(constchar*uri){qmlRegisterType(uri,1,0,"listmodel");}Q_EXPORT_PLUGIN2(Proc,ProcPlugin)项目文件(我认为是这个

c++ - qml + 主从

我想将qml与主从界面一起使用,但我不知道如何以正确的方式将当前项目传递到详细信息View。主视图中的ListView使用C++模型(QSQLTableModel的附加组件,它工作正常),我看到两种传递项目的方法:使用静态名称(如QSqlRecord字段名称)的字段创建C++类,并使用w->rootContext()->setContextProperty()(w是QDeclarativeView*)将其传递给qml,但是现在我不使用任何这样的类并且可以在不更改C++代码的情况下更改我的数据库和qmlView,我想保存它在任何细节qml中创建很多属性,例如Rectangle{id:ma

c++ - Qt/QML - 在 C++ 中注册 QML 类型会使 QML 代码不起作用

我正在做一些事情,我有一个名为“FloatingMenu”的类(它应该在C++中管理菜单)及其在文件FloatingMenu.qml中用于GUI的QMLalter-ego。我有一个文件main.qml,其中有几个矩形和一个FloatingMenu,它按预期显示。现在,如果我执行qmlRegisterType("EasyGraph",1,0,"FloatingMenu");在我的main.cpp中,FloatingMenu的图形部分消失了。这是我的代码:intmain(intargc,char*argv[]){QGuiApplicationapp(argc,argv);//Registe

python - QML 兼容多线程/异步调用吗?

我正在QML中构建一个UI,目前只处理UI逻辑,将应用程序逻辑留到以后处理。我有点担心我所涉及的所有与多线程和异步与同步代码以及UI中的缓慢有关的讨论,我想确保在稍后添加应用程序逻辑时,QML不会通过以某种方式强制单线程异步代码来阻止我并减慢我的速度。也许这听起来很荒谬,但我明白我是非网络GUI工作的新手。我来自可爱的JS世界,那里所有的UI事件都是异步和非阻塞的。有没有人有这方面的经验,无论是python还是C++? 最佳答案 在这里您可以找到几乎现成的答案:https://stackoverflow.com/a/16037815

c++ - 从 C++ 加载 QML 插件

是否可以从C++加载QML插件,比如说,从QPluginLoader来使用它的功能?在我的项目中,我有一个带有版本信息的qml插件,我想从C++读取它。示例:main(){//...QQmlApplicationEngineengine;engine.load(QUrl(QStringLiteral("qrc:///ui/views/mainwindow.qml")));if(parser.isSet(verionsOption)){QSharedPointermyPlugin=//loadpluginstd::coutversion() 最佳答案