小编Gré*_*rel的帖子

如何在CMake中使用qt5_add_binary_resources生成rcc文件

我正在尝试使用宏创建rcc文件:CMakeqt5_add_binary_resources(target inputfile ... OPTIONS ... DESTINATION ...)

qt5_add_binary_resources(myApp "themes/redTheme.qrc" OPTIONS ARGS -binary)
Run Code Online (Sandbox Code Playgroud)

由于我正在使用其他宏,例如add_executable在我的CMakeLists文件中(要求a target),我收到以下错误:

CMake Error at C:/Qt/5.5/msvc2013/lib/cmake/Qt5Core/Qt5CoreMacros.cmake:255 (add_custom_target):
  add_custom_target cannot create target
  "myApp" because another target with the
  same name already exists.  The existing target is an executable created in
  source directory [..]
Run Code Online (Sandbox Code Playgroud)

请注意,我的CMakeLists文件嵌套在根目录中CMakeLists.

编辑:我看了宏的定义(l.226)qt5_add_binary_resources.最后一行是引发我的错误的命令.它似乎没有做任何事情:

add_custom_target(${target} ALL DEPENDS ${rcc_destination})

我不明白为什么宏需要一个target?

编辑:这是我的内容CMakeLists.txt,虽然为了清晰起见而简化了.

CMAKE_MINIMUM_REQUIRED(VERSION 3.4)
CMAKE_POLICY(SET …
Run Code Online (Sandbox Code Playgroud)

qt cmake qml rcc

5
推荐指数
1
解决办法
1411
查看次数

使用 CMake 将 QML 文件添加到 Qt Creator 项目树

我有一个名为qml_components包含基本QML图形元素的库。我想将这些文件添加到项目树中,而不是构建它们。通过执行以下操作,我已经能够将它们重新组合到一个变量中:

CMAKE_MINIMUM_REQUIRED(VERSION 3.4)
CMAKE_POLICY(SET CMP0003 NEW)

PROJECT(myApp)

FILE(GLOB QML_SRC "*.qml")
Run Code Online (Sandbox Code Playgroud)

然后我尝试将它们添加到我的库中target:

# Add QML files to project tree without building/compiling them
ADD_CUSTOM_TARGET(myApp ${QML_SRC})
Run Code Online (Sandbox Code Playgroud)

在研究时,我读到ADD_CUSTOM_TARGET可以将文件添加到源中而无需构建它们:

SOURCES 选项指定要包含在自定义目标中的其他源文件。即使没有构建规则,也会将指定的源文件添加到 IDE 项目文件中,以方便编辑。

它似乎不起作用。我认为可能的原因是我没有从这个库生成任何二进制文件,因此在尝试将源链接到TARGET.

qt cmake qml

4
推荐指数
1
解决办法
2093
查看次数

捕获QML错误消息

我Qt.createQmlObject()用来QML从文件创建对象。在文件损坏的情况下,QML输出一条如下所示的消息:

Qt.createQmlObject(): failed to create object: qrc:/graphics/inline:5:2: Expected token}'`

我想捕获该消息,以便告诉用户他的文件已损坏。

我正在尝试使用中提供的第三个参数,Qt.createQmlObject()但我不知道它是如何工作的。Wiki很好地描述了该功能,但没有给出利用它的任何示例:

https://wiki.qt.io/QML_Dynamic_Objects#Creation_of_Dynamic_QML_Objects

第三个参数是在Qt Creator IDE中的错误报告中用作文件名的字符串。例如,如果在加载的QML字符串中遇到错误,则在文件名中将该错误报告为一个。在调用文件名时,字符串必须用双引号引起来。

qt try-catch qml

2
推荐指数
1
解决办法
3460
查看次数

在没有Canvas的QML中绘制虚线圆圈

我想绘制一个虚线圆,其半径将根据变量增大或缩小.我只找到了一个Canvas基于解的方案:Qt(QML)Dashed Circle

我没有找到另一个解决方案,我有点惊讶.我担心Canvas解决方案会占用太多资源.还有其他实用的方法吗?

qt canvas qml

2
推荐指数
1
解决办法
181
查看次数

为什么我在这里用anyInt()检测到Mockito错位的参数匹配器?

Mockito.when(metadataDao.getStuff(Mockito.anyInt()).get(Mockito.anyInt()))
               .thenReturn(returnedVariable);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.LinkedList.checkElementIndex(LinkedList.java:555)
    at java.util.LinkedList.get(LinkedList.java:476)
    at 
Run Code Online (Sandbox Code Playgroud)

为什么我不能使用匹配器?

java mockito indexoutofboundsexception

1
推荐指数
1
解决办法
3922
查看次数

Qt5中没有Qt5WebKit

我正在尝试构建正在使用的Marble库CMake.构建失败,因为找不到Qt5WebKit.cmake.它似乎没有出现在5.6版本中.

我检查了Maintenance Tool看是否有重要的遗漏,但我没有找到任何东西.

它是从上一版本中删除的吗?

qt cmake qtwebkit

1
推荐指数
1
解决办法
2795
查看次数

在函数调用中声明一个向量并通过引用传递它

我想以vector这种方式宣布:

myFunction(new std::vector<stuff>{});
Run Code Online (Sandbox Code Playgroud)

以vector传递为参考:

void myFunction(const std::vector<stuff> &myVec);
Run Code Online (Sandbox Code Playgroud)

c++ vector

-1
推荐指数
1
解决办法
515
查看次数

标签 统计

qt ×5

qml ×4

cmake ×3

c++ ×1

canvas ×1

indexoutofboundsexception ×1

java ×1

mockito ×1

qtwebkit ×1

rcc ×1

try-catch ×1

vector ×1