qtquick2相关内容
我想知道我可以使用什么样的数据来处理 QML ListModel 中的 dataChanged 信号.我发现它有三个参数,其中两个是 QModelIndices,一个是 QVariant(...). 所以从前两个(似乎是一样的?)我可以得到行、列(应该是 0)、模型本身和呃......东西 但是为什么我得到了两次?而第三部的内容是什么?它不为空,但我还没有找到可以用来从中检索一些有用数
..
我正在使用 ListView 并将其加载到 Rectangle.向上或向下滚动内容时,内容未正确隐藏并且对用户仍然可见.有人可以帮我解决这个问题吗? 解决方案 据 文档: 注意:视图不会自动启用剪辑.如果视图没有被其他项目或屏幕裁剪,则需要设置 clip: true 以便很好地裁剪视图外项目. 因此,您遇到的是一种常见行为,您应该 1) 通过其他 Item(例如标题 Recta
..
我有一个 ListModel: ListModel {id:源模型ListElement { sourceType: "Christian's Galexy";sourceName: "蓝牙";可见:真}ListElement { sourceType: "BBC Radio";源名称:“DAB";可见:真}ListElement { sourceType: "媒体库";来源名称:“";可见:假
..
我想用来自 QAbstractListModel 的地图元素(如 MapCircle,...)填充 Qml 地图.似乎有两个 Qml 工具适用于此,MapItemView [1] 和 Repeater [2].Repeater 更强大(例如它允许嵌套模型) - 那么有什么理由使用 MapItemView 而不是 Repeater?> 问候, [1] http://doc.qt.io/qt-
..
我想实例化项目,然后使用 StackView 显示它们,通过 MyItem0{编号:项目 0}我的项目 1{编号:项目 1}myStackView.push(item0)...myStackView.pop()myStackView.push(item1) 问题是我创建item0和item1的时候,都显示出来了,这显然不是我想要的. 我猜这与这篇文章有关. 有什么想法吗? 解
..
标题可能有点混乱,但我的意图很简单: 我有一个 [Repeater/Instantiator] 可以创建任意委托的多个实例.我想对委托实例的属性(只有第一级,因此没有属性的属性)的所有更改做出反应,调用函数 function update(index, propertyName) 这似乎很容易,但我失败了.这是我的代码 TestObj.qml 中继器{onItemAdded: {
..
我有一个简单的示例项目 here 演示了这个问题. 我在下面包含了我认为相关的来源,但其余的可以在上面的项目链接中找到,或者我可以编辑并包含更多有用的内容. 根据一些研究,似乎我需要在我的数据函数中使用 Qt::DecorationRole 并在列为 1 时返回一个图像.但是,这部分代码永远不会执行.关于角色概念如何与 Qt QML TableView 配合使用,我遗漏了一些重要且明显
..
来自 C++ 我不知道如何在 QtQuick 中正确实现可检查的 ListView. 出于测试目的,我创建了一个小型测试应用程序. 模型: class MyModel : public QAbstractListModel{Q_OBJECT上市:我的模型(QObject *parent = Q_NULLPTR):QAbstractListModel(父){for(int i = 0;
..
我想要的是一个主线程,它实例化一个扩展 QQuickView 的类并将其移动到第二个线程. 理想情况下,我想做这样的事情: main.cpp int main(int argc, char *argv[]){QGuiApplication app(argc, argv);MyClass myClassObj;myClassObj.init();返回0;} MyClass.cpp
..
我编写了一个简单的代码来在 C++ 循环中从我的 QML 中读取复选框的值.但是,我总是得到“未选中"的值,即使在我用鼠标切换复选框之后也是如此. QML: CheckBox {对象名称:“模拟器复选框"文字:“文字"} C++: QObject *rootObject = engine.rootObjects().first();QObject *simulatorCheckboxQ
..
在我的程序中,我有很多在 QML 中实例化的 QObject 子类.每次添加/删除一个新的类,都需要在main.cpp中添加/删除qmlRegisterType()的对应调用.我想知道是否可以将调用放在注册类本身的代码中.这使得可以通过删除其 cpp/头文件而不更改任何其他 C++ 代码来删除类.另外,我可以让我的 main.cpp 干净,不需要包含注册类的所有头文件. 一种方法似乎是这样的
..
在下面的代码中,我有一个 ListView,我用 JSON 数据提供它.我使用 parse 函数来提取数据并将其分配给模型,即: view.model = JSON.parse(io.text) 但是,似乎 view.model 没有获取数据,因此我的应用程序无法显示任何内容. 这是我的完整代码. 导入QtQuick 2.0导入 FilesIO 1.0导入 QtQuick.Wind
..
我目前正在构建一个使用 QML WebView (import QtWebKit 3.0) 的应用程序.用户需要经常调整 WebView 的大小(我使用的是 QML SplitView),但是这会导致 UI 在应用程序窗口调整大小时极度滞后.有什么办法可以防止这种情况吗? 解决方案 不是改变 width 和 height 属性而是改变 scale 属性WebView. 在开始调整大小
..
我在 C++ 中有一个 QQuickItem,它在 QML 应用程序中实例化.如果我的 QQuickItem 的 width 属性发生变化,我想在 C++ 端触发一个自定义函数. 在 QML 中,我会做 onWidthChanged: { my code}.我怎样才能在 C++ 方面做到这一点? 解决方案 如果您想响应自定义 QQuickItem 中的大小更改,请重新实现 geome
..
有没有一种不使用 Loader 来实例化内联 Component(即在同一个文件中定义)的方法?我不太关心使用 Loader 的性能影响,因为我担心使用大量 Loader 包装器污染我的文件. 解决方案 您可以使用 Repeater 来创建没有 Loader 的组件.或者你甚至可以使用 Qt.createComponent 来做到这一点. 查看 Qt 文档关于QML 中的动态组件创建
..
我创建了一个自定义的 QQuickItem,我想创建一个圆角窗口.所以我实现了一个 QQuickPaintedItem 并导出到 QML.问题是项目的子项正在扩展项目的边界矩形,这是一个矩形而不是我想要的圆角矩形.这是它的外观: 这是我的代码: main.qml 导入 QtQuick 2.7导入 QtQuick.Window 2.2导入 mycustomlib 1.0窗户 {编号
..
是否可以向上/向下移动视觉项目以更改其重叠?目前,孩子隐藏了它的父母,但我想反过来,即父母隐藏孩子.也许存在某些属性? 解决方案 是的,这是可能的.您将需要更改相关项目的 z 属性.根据文档: 设置同级项的堆叠顺序.默认堆叠顺序为0. 具有较高堆叠值的项目绘制在具有较低堆叠顺序的同级项之上.具有相同堆叠值的项目按照它们出现的顺序自下而上绘制.具有负堆叠值的项目将绘制在其父项的内
..
我有以下代码: 导入QtQuick 2.4导入 QtQuick.Window 2.2导入 QtQuick.Dialogs 1.2导入 QtQuick.Controls 1.4应用程序窗口{标题:qsTr("Hello World!")宽度:640高度:480可见:真实菜单栏:菜单栏{id:菜单栏}鼠标区域{anchors.fill:父级onClicked: { menuBar.menus.add
..
我想创建一个可以缩放并包含一些桌面组件的用户界面 qtquick2.正如这篇博客文章 qml/qtquick2 的默认渲染应该使用距离字段而不是原生文本渲染.我尝试缩放 qt 快速控件.结果相当令人失望.我正在 ubuntu 64 和 qt-5.1.1 上进行测试.控件上的文本看起来很糟糕,但标准 qml 元素 (Text/TextEdit) 中的所有文本在缩放时看起来都不错. 这让我认为原
..
以下是我的main.qml: 窗口{编号:窗口可见:真实宽度:800高度:480标题:qsTr(“Hello World")列表模型{id:_listModel列表元素{文本数据:“E1"已启用:假}列表元素{文本数据:“E2"已启用:假}列表元素{文本数据:“E3"已启用:假}列表元素{文本数据:“E4"已启用:假}列表元素{文本数据:“E5"已启用:假}列表元素{文本数据:“E6"已启用
..