QUrl 和 QFile

最近设计了一个Qml 文件对话框用来创建文件,然后将这个文件路径传递给C++的extensionplugin去写本地文件。

但是Qml 文件对话框返回了一个QUrl给我,形如:

file:///C:/uuuu.a3


我想要的只是本地文件格式:C:/uuuu.a3

在C++代码中,QUrl类可以帮助做这个转换。

用Url路径构造一个QUrl对象, 然后调用toLocalFile方法去获得一个真正的本地文件路径

例子如下:

void Test::setPath(QString const& path) {
  QUrl url(path);
  projectFilePath_ = url.toLocalFile();
  QFile file(projectFilePath_);
  if (!file.exists()) {
   if (!file.open(QIODevice::ReadWrite | QIODevice::Text)) {
    QString error_msg = file.errorString();
    return;
   }
   QTextStream out(&file);
   out << "test" << "\n";
   file.close();  
  }
}

另外,上面的片段也展示了如何在本地磁盘上用QFile & QIODevice & QTextStream 来创建和写入一个文本文件。


你可能感兴趣的:(qt,qml)