我有一个由图形元素组成的外部QML module。我想找到它的路径,以便将其添加到我的QQmlApplicationEngine
。有没有办法做到这一点?
QQmlApplicationEngine engine;
engine.addImportPath("externalQmlModulePath");
有了这个,我将import
qrc
QML
个Sub Merge()
Dim ws As worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim ws2 As worksheet: Set ws2 = ThisWorkbook.Sheets("Sheet2")
Dim sheet2Rng As Range: Set sheet2Rng = ws2.UsedRange
Dim startRow As Integer: startRow = LastRow(ws) + 1
Dim ws2RowCount As Integer: sheet2Rng.Rows.Count
ChangeEvents False
ws.Range("A" & startRow).Resize(ws2RowCount, 4).value = sheet2Rng.value
ChangeEvents True
End Sub
Public Function LastRow(worksheet As worksheet) As Integer
LastRow = worksheet.Cells(Rows.Count, 1).End(xlUp).Row
End Function
Sub ChangeEvents(value As Boolean)
Application.EnableEvents = value
End Sub
文件中的图形元素(当然在项目中)。
答案 0 :(得分:2)
看看QStandardpaths
。拥有与这些路径相关的资源(无论是您自己的还是第三方)使它们在目标系统上始终可用。特定于应用程序的数据的建议路径为QStandardPaths::AppDataLocation
。
在CMake中你可以添加一个自定义的构建后命令来复制你的所有资源(再次,如果你自己或第三方没有区别):
add_custom_command(TARGET ${MY_APP} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${MY_APP_RES_SOURCE_DIR} ${MY_APP_RES_DEST_DIR})
QStandardPaths::AppDataLocation
当然只是一个枚举值,用于指定您要查找的标准路径。要实际获取应用数据路径,请使用standardLocations
方法,如下所示:
auto appDataPath = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).first();
最后,添加您应用的资源文件夹作为导入路径(就像您已经做过的那样)并且您已完成:
engine.addImportPath(appDataPath + "/res_dir_name");
注意:在Mac上,您可以通过在应用程序包中放置资源来更轻松地离开。