我是QtCreator的新手,我的问题是我不能看到QML自定义组件。
例如,如果您导入QML1.5,您将在QtQuick.Controls类型下看到:- Qt快速控件。
到目前为止,我已经创建了我个人的组件集,下面是文件夹结构:
组件qmldir是以这种方式完成的:
# qmldir
module components
Header 1.0 Header.qml
Footer 1.0 Footer.qml
CentralPage 1.0 CentralPage.qml
GenericButton 1.0 GenericButton.qml
ProgressBarCustom 1.0 ProgressBarCustom.qml
而不是例如在LandingPageFrom.ui.qml中
import QtQuick 2.6
import QtQuick.Controls 1.5
import QtQuick.Layouts 1.3
import components 1.0 as Components
Components.CentralPage {
pageName: "landingPage"
id: landingPage
width: 800
height: 1056
property alias aButton: aButton
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
}
并且正在编译并显示良好,但是在设计器内部没有显示任何方面,我只看到在同一目录中的组件,而不是在.qml目录中的组件:
这就是我在.pro和main.cpp中所做的
QML_IMPORT_PATH += $$PWD/resources/common/ui
QML_DESIGNER_IMPORT_PATH += resources/common/ui
main.cpp
QQmlApplicationEngine engine;
engine.addImportPath("qrc:///ui");
engine.load(QUrl("qrc:///ui/main.qml"));
奇怪的是,只有设计者看不到组件,但QML代码可以看到,我在这里错过了什么?
发布于 2018-06-02 05:45:36
不确定你是否已经解决了你的问题,但是在这里尝试步骤4和5:http://doc.qt.io/qtcreator/creator-qml-modules-with-plugins.html
这使它为我工作,尽管我在metainfo文件上有一些问题。您可以使用这个guys metainfo文件作为示例(或者查看上面说明中引用的Qt文档):https://forum.qt.io/topic/56207/how-to-load-custom-qml-controls-into-the-qml-designer/2
只需确保将设计器文件夹放在模块qmldir所在的位置,并将metainfo文件放入其中即可。根据模块名称判断,可能名为components.metainfo,不确定这是否重要。
https://stackoverflow.com/questions/46978665
复制相似问题