问题标签 [qqmlcontext]

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 投票
1 回答
40 浏览

python - 如何将表模型数据传递给 qml?

我看到一些用 c++ 风格编写的代码,我尝试用 python 风格编写它。
我在 python 文件中编写了一个表模型,然后将其传递给 qml 文件。
但是当我运行我的main.py文件时,窗口什么也没有显示。
而且我的程序没有显示任何错误,我不知道这里出了什么问题?有人可以知道原因吗?

主文件

表.qml

结果
在此处输入图像描述

0 投票
2 回答
30 浏览

model - 带有模型和委托的自定义视图都可以从两个 QML 文件中访问

虽然我已经想通了,但还是花了很长时间。如果您知道一个不那么复杂的解决方案 - 请分享。

我想提供一个View适用于任何类型model(带有任意命名的字段)的自定义:

  • model: 3
  • model: [ "red", "yellow", "green" ]
  • model: [ {color: "red"}, {color: "yellow"}, {color: "green"} ]
  • model: ListModel{ ListElement{color: "red"}; ListElement{color: "green"} }
  • 子类QAbstractItemModel等...

为此,我决定property Component delegate为该用户提供一个视觉效果,该视觉效果Item将插入到我的View.

但是,View还需要从中访问一些信息,delegate否则它会促进不必要的代码重复或代理的不必要的复杂性model

...其中 MyView 应该是这样的:

这样做似乎很容易,但幼稚的尝试并没有奏效。作为答案发布的解决方案对我有用。

0 投票
0 回答
11 浏览

qml - 在(外部)QML 文件中调试上下文和附加属性的值

想象一些 QML 代码暴露给一些附加或上下文属性

我希望能够index从 QML 文件外部读取此类属性(例如 ) - 用于诊断目的。

我正在寻找一种方法来做到这一点,而无需以任何方式修改有问题的 QML 文件。

我能够获得指向相关 QML 对象和QQmlApplicationEngineC++ 代码的指针。

我尝试了以下方法:

  • QML/Javascript DOM-walking with data[], for(in), eval() 等等——设计上可能是不可能的
  • QtCreator QML 调试器 - 我在任何地方都找不到上下文或附加属性
  • GammaRays - 似乎也没有显示附加属性,只能通过苦苦搜索全局对象列表找到一些附加和上下文对象
  • QQmlEngine 和它的 JavaScript 引擎 - 看起来很有希望,但如果没有相关知识或经验就很难理解
  • 通过 QQmlEngine 将 QML 代码、属性和对象动态注入 QObjects - 无法从那里访问任何内容,完全不确定是否可能
  • qquickrepeater通过诸如注入等肮脏的黑客攻击访问 C++ 私有成员等friend- 应该是可能的,但可能需要对正在调试的每个 qt 版本中的每个类进行大量挖掘 - 会更喜欢更通用的解决方案。
  • 通过 C++ 调试器查看 C++ 字段qquickrepeater等 - 应该是可能的,但需要在 QML 中设置断点,然后才在 C++ 中设置断点 - 非常不舒服,尤其是对于不熟悉 Qt 内部结构的开发人员。