- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
此代码成功:
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
此代码打印“失败”:
QFile file("qrc:/main.qml");
if ( file.open(QIODevice::ReadOnly) ) {
cout << "success" << endl;
} else {
cout << "failure" << endl;
}
将 QFile 构造函数参数更改为 qrc:///main.qml
(如 Qt documentation 中所示)并没有修复它。将其更改为 :/main.qml
使其打印“成功”。
所以我对何时使用这 3 种形式感到困惑。
最佳答案
如您的 link 中所述,:/main.qml
是一个文件路径,而qrc:/main.qml
是一个url。
前者可用于需要文件路径的地方——基本上是一个 QString
,就像 QFile
构造函数一样。
后者可以在需要 url 的地方使用,比如 QQmlApplicationEngine::load
through QUrl
。它不能与需要路径的 QFile
构造函数一起使用。
关于qrc:///
,一个简化的url语法(没有查询,用户/密码,也没有端口)可以是:
scheme:[//host][/]path
如果您跳过 host
部分,则可能导致 scheme:/path
,如果您指定 ,则可能导致
为空字符串。来自 RFC 3986 :scheme:///path
>host
For example, the "file" URI scheme is defined so that no authority, an empty host, and "localhost" all mean the end-user's machine, whereas the "http" scheme considers a missing authority or empty host invalid.
看起来 Qt 的开发人员在设计他们的 qrc
方案时遵循了 file
方案的规则。毕竟,这里的资源只是“最终用户机器上”的文件(实际上,在最终用户机器上的可执行文件中)。所以qrc:/main.qml
和qrc:///main.qml
只是同一个url的两种写法。
参见 here完整的 url 语法。
关于c++ - Qt 中 `:/foo` 、 `qrc:/foo` 和 `qrc:///foo` 路径之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39701903/
此代码成功: QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); 此代码打印“失败”:
我想从我的 qrc 文件中获取所有图像并将它们传递给 ComboBox。 不知道再说什么。我认为这是一项非常基本的任务,但我找不到解决方案。 最佳答案 这应该让你走上正轨: foreach( cons
我有几个主题文件夹,每个文件夹都包含一个 .qrc 文件: redTheme/ - File.qml - qml.qrc blueTheme/
我已经在 QRC 资源中添加了一个 jpg 文件,这样就不会每次都拖动图像文件的完整路径。 但是,当我启动应该加载它的用户界面时,它没有显示!! 我给它加了一个别名。它不工作。但是当我写项目解决方案中
我正在用 Qt 4.5 开发一个 C++ 程序,我想用几个资源路径配置我的资源文件 (.qrc)。为此,我想添加一些子路径,但如果我尝试在另一个子路径下添加一个,它似乎不起作用。有人知道这是否可能吗?
对于我的项目,我在 .qrc 文件中有像素图。我可以看到 qrc 生成的头文件包含我的像素图的名称,它们肯定被编译成二进制文件。但是,图片没有加载(它们在 GUI 中是空的),下面的代码 QDirIt
我想知道如何将嵌入到应用程序 qrc 中的文件复制到 fs 中?类似的东西 QFile::copy("qrc:/assets/files/my.file" , "C:/my.file"); 好像不行。
我想在 QLabel 小部件中显示图像。图像位于文件夹 ./images/ 中,相对于 resource.qrc 文件,包含如下: image.png 现在我想
我正在尝试使用 QML-material library在 Qt Quick 应用程序中。 但是当我尝试使用导入代码时,它说 module "Material" is not installed` i
是否可以像使用 QT .Pro 文件那样在 QRC 文件中包含平台部分? (例如 macx、win32 等) 我想知道是否可以将 Mac、Windows、Linux 特定资源拆分为 QRC 文件本身的
我对 Qt 非常陌生。在我的程序中,我在 .qrc 资源文件中添加了一些图标文件。 我们如何在程序中列出 qrc 中存储的文件? 最佳答案 这是应该执行此操作的示例代码: QDirIterator i
我有一个 Qt5 桌面项目,并使用 Qt Creator 编辑器添加了一个“resource.qrc”文件,该文件在项目的 .pro 文件中创建了以下行: RESOURCES = resource.q
我在 Mac 上开发,我在 QRC 路径上没有问题,在切换到 Windows 后,图像链接停止工作。但是 qss 文件可以被引用并且正在工作! 1) 我从头开始创建了一个新的资源文件 2) 我重建了项
我在使用 pyqt 时遇到了一些问题。我必须示例文件: 登录.ui 登录.qrc 因此,使用qt 设计器制作的login.ui 使用了qrc 文件的一些资源。qrc 有一些在 ui 文件中创建的按钮的
我在导入资源文件时遇到问题。我在 monkey studio 中使用 pyqt4,我正在尝试导入 png 图像。当我运行该程序时,出现类似 的导入错误 ImportError: No module n
我有一个 Qt5 桌面项目,并使用 Qt Creator 编辑器添加了一个“resource.qrc”文件,该编辑器在项目的 .pro 文件中创建了以下行: RESOURCES = resource.
我已经构建了一个静态 Qt 库,并希望使用它通过独立的 exe 部署我的应用程序。经过一天的努力,我知道qtquick插件不能静态包含到exe中。 我需要将qml文件夹中的一些文件夹复制到我的exe目
我正在使用带有 QT Visual Studio 集成的 Visual Studio 2005 IDE。 QT 版本是 4.7.3。 我有一个项目,其中包含在 QT 资源集合文件 (.qrc) 中定义
我的系统上运行着下面的项目: How to Create QRCode using Java 但我无法弄清楚如何使用这个库设置纠错级别。 最佳答案 来自QRGen documentation ,你不能
如何在 Visual Studio 2015 中的每个版本中强制对 qrc 文件进行 rcc-ing?我们将资源嵌入二进制文件中,因此如果 qml 或图像 Assets 等内容发生变化,我们需要运行
我是一名优秀的程序员,十分优秀!