我正在使用 Qt-Quick 和 PySide2 开发仪表板应用程序,但在 Qt Creator 的设计模式中公开我的 QML 组件时遇到问题。
我的文件夹结构如下所示:
myapp/
├── mycomponents
│ ├── component1.qml
│ └── component2.qml
│ └── etc..
├── pages
│ ├── page1.qml
│ └── page2.qml
└── app.qml
我可以使用来自的所有组件myapp/mycomponents
通过使用相对路径导入适当的 .qml 文件或其父目录:
// inside page1.qml
import "../mycomponents"
Item {
id:page1
MyComponent1 {
// some code
}
}
问题是我无法看到组件myapp/components
in the 我的 QML 组件当我打开一个选项卡时page.qml
(或同级目录中的任何其他 .qml 文件)文件Qt Creator --> 设计.
app.qml 可用的所有组件
但不在 page1.qml 中
我怎样才能暴露 myapp/components
到位于同级目录中的 .qml 文件而不更改我的项目的文件夹结构?
Edit 1:我已经读过docs http://doc.qt.io/qtcreator/creator-qml-modules-with-plugins.html关于designer.metainfo
但它们似乎都指的是插件应用程序,而我的不是。所以我很难让这些适用于我的用例。
设计器仅显示当前目录或使用过的导入中的组件(可以是 C++ 插件,也可以是带有一些 qml 组件的 qmldir)。
因此,您必须创建一个导入并将其添加到加载的项目中 - 不确定 pyside 使用什么,但也许为所有 qml 内容创建一个 myapp.qmlproject 文件以及您需要的文件是一个好主意:
importPaths: [ "." ]
然后在 mycomponents 目录中,您需要一个 qmldir 文件
Component1 1.0 Component1.qml
另外,您需要包含文件 mycomponents.metainfo 的设计器目录
MetaInfo {
Type {
name: "Component1"
ItemLibraryEntry {
name: "a Test Component1"
category: "mycomponents"
version: "1.0"
requiredImport: "mycomponents"
}
}
}
不幸的是,您必须关闭并重新打开项目才能看到结果。
我准备了一个小例子here http://s000.tinyupload.com/index.php?file_id=19297531601404361286
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)