关于如何将QtDesignStudio中生成的程序运行在QtCreator中,之前看过别人的文章是将QtDesignStudio生成CMakeList后直接导入QtCreator中使用,但是本人用这种方式未能成功。本文章的方法是研究QtCreator官方例子RobotArm总结,亲测可用。
Qt Creator 6.6.3
QDS 4.6.2
以QDS默认示例做演示
成果演示:
步骤一:在QtDesignStudio中选择File->Export Project->Enable CMake Generator,在程序构建时生成CMakeList.txt文件。
步骤二:使用QtCreator打开生成的CMakeList.txt。
打开后是下图这样,有错误,但是不要紧。
然后打开官方例子RobotArm,将它的CMakeList.txt内容复制到此处。或者复制以下代码是一样的。
cmake_minimum_required(VERSION 3.16)project(RobotArm LANGUAGES CXX)set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOMOC ON)if(NOT DEFINED INSTALL_EXAMPLESDIR) set(INSTALL_EXAMPLESDIR "examples")endif()# set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/quick3d/robotarm")find_package(Qt6 REQUIRED COMPONENTS Gui Qml Quick Quick3D)qt_standard_project_setup()qt_add_executable(RobotArmApp src/main.cpp)qt_add_resources(RobotArmApp "configuration" PREFIX "/" FILES qtquickcontrols2.conf)target_link_libraries(RobotArmApp PUBLIC Qt::Core Qt::Gui Qt::Quick)add_subdirectory(Backend)#注意此处,因为QDS导出的程序里没有qmlmodules文件,这里我们可以将qmlmodules里的内容直接粘过来替换成自己的即可#include(${CMAKE_CURRENT_SOURCE_DIR}/qmlmodules)
步骤三:之后修改CMakeList.txt中的内容,按照以下方式修改
替换完成是这样
构建后发现提示src/main.cpp找不到,去自己的项目路径下找一下,我的是在App/main.cpp下,将src/main.cpp替换为App/main.cpp
构建后会发现程序正常了,但是没有我们的qml文件。下一步就是将qml文件包含进来。
步骤四:添加子文件夹。
在RobotArm例子中打开qmlmodules看到以下内容
qt6_add_qml_module(RobotArmApp URI "Main" VERSION 1.0 NO_PLUGIN QML_FILES main.qml RESOURCE_PREFIX "/")add_subdirectory(content)add_subdirectory(imports)set(QML_IMPORT_PATH ${CMAKE_BINARY_DIR} CACHE STRING "")target_link_libraries(RobotArmApp PRIVATE robotarm_contentplugin #对应两个文件夹名改:文件夹名+plugin RobotArmplugin backendmodule #)
将该代码复制到自己项目的CMakeList后面,然后将所有RobotArm都改为自己的项目名。
我们看到在这块代码中添加了两个子文件夹,将文件夹名字改为自己的文件夹名
在项目目录下可以看到,除了App、cmake、Generated文件夹外的就是我们要添加的文件夹。
CMakeList.txt中改完是下图这样
步骤五:添加main.qml
选择新添加一个QML file文件
main.qml中添加以下内容
步骤六:更改main.cpp中的路径。将url的路径替换成新增的main.qml的路径
步骤七:将constants.qml中的部分内容注释掉
之后进行构建运行,程序即可成功运行。
程序显示不全,将App.qml中Screen01设置为anchors.fill: parent
使用以上步骤后,该项目既可以在QDS中编辑又可以在QtCreator中进行编辑。
运行结果:
领取专属 10元无门槛券
私享最新 技术干货