在 Qml 中创建一个新文件夹

Posted

技术标签:

【中文标题】在 Qml 中创建一个新文件夹【英文标题】:To create a new folder in Qml 【发布时间】:2013-06-07 10:16:05 【问题描述】:

我想……所以我通过 Qt 找到了它……所以我想在 Qt C++ 下将它与 Qml 集成……这怎么可能……

    QDir dir(“path/to/dir”);
    if (!dir.exists()) 
     
     dir.mkpath(”.”);
    

或者,是否有任何选项可以直接在 Qml 中创建新文件夹...请提出解决方案。提前致谢。

【问题讨论】:

【参考方案1】:

无法直接从 QML 或 javascript 创建目录。您必须在 C++ 中创建一个对象并将其“导出”(使其可见)到 QML。你可以从你的 QML 代码中调用这个对象的方法,它会创建目录。

这里介绍了连接 C++ 和 QML 的基本思想: Reading and writing files in QML 您唯一需要更改的就是将 write 方法换成 createDir(或任何您想要的)并插入您的代码。

另一种方法是设置 contextProperty ex。

QQmlContext *context;
context = viewer.rootContext();

context->setContextProperty("DirManager", &dManager);

(其中 DirManager 是您的类)并在方法的返回类型之前使用宏 Q_INVOKABLE

【讨论】:

以上是关于在 Qml 中创建一个新文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QT QML 中创建自己的目录?

在PyQt中创建MapQuickItem并将其添加到Map中

为啥我在尝试创建新的 qml 文件时得到 QmlCachedGenerateCode?

如何通过级联QML在blackberry 10设备文档目录中创建XML文件?

如何在 Qt QML 中创建多屏应用程序

使用具有UI控制的所有状态的1个图像在QT / QML中创建UI