cmake扩展(1)——VS+CMake创建Qt项目

这篇具有很好参考价值的文章主要介绍了cmake扩展(1)——VS+CMake创建Qt项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建项目

创建CMakeLists

#cmake最低版本
cmake_minimum_required(VERSION 3.10)
#项目名
project(regextool)

#查找所有*.h,*.ui,*.cpp文件,并存入SOURCES中
file(GLOB SOURCES "*.cpp" "*.ui" "*.h")

#开启moc
set(CMAKE_AUTOMOC ON) 
#开启ui功能
set(CMAKE_AUTOUIC ON) 
#查找Qt相关包
find_package(Qt5 COMPONENTS Core Widgets Gui REQUIRED)
#生成可执行文件
add_executable(${PROJECT_NAME} WIN32 ${SOURCES})
#链接头文件
target_include_directories(${PROJECT_NAME}
    PRIVATE
    "*.h")
#链接Qt相关库
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Widgets Qt5::Gui)

生成项目文件

添加main.cpp文件(可以为空)后

CMakeLists目录下运行

cmake -S . -B build

打开项目

build目录下运行

cmake --open .

添加文件

类文件

项目右键->添加->新建项->C++类。设置好类名和路径,点击添加。

cmake扩展(1)——VS+CMake创建Qt项目,cmake,cmake

cmake扩展(1)——VS+CMake创建Qt项目,cmake,cmake

ui文件

项目右键->添加->新建项->Qt->Qt Widget Form File。设置好类名和路径,点击添加。

cmake扩展(1)——VS+CMake创建Qt项目,cmake,cmake

关联ui文件和类文件

由于此处添加的ui文件和类文件没有关联,会导致编译不通过(不知道是不是自己操作有误)。所以需要在类文件中添加内容。

*.h

//类外添加命名空间
QT_BEGIN_NAMESPACE
namespace Ui { class Form; }
QT_END_NAMESPACE

//类内添加成员
private:
	Ui::Form *ui;

*.cpp

//包含头文件,ui_类名.h
#include "ui_Form.h"

//构造中初始化ui变量
RegexTool::RegexTool(QWidget * parent)
	:ui(new Ui::Form)
{
	ui->setupUi(this);
}

此时一个待ui的类就添加好了,可以在项目中使用了。

一些问题

ui文件名

上面提到的ui文件类名为Form,这是创建Qt Widgets Form File文件默认的类名,暂时没有发现预设的操作。

不过我们可以通过创建后修改ui文件进行修改:

<ui version="4.0">
 <author></author>
 <comment></comment>
 <exportmacro></exportmacro>
 <class>Form</class>
 <widget class="QWidget" name="Form">
  <property name="objectName">
   <string notr="true">Form</string>
  </property>
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>400</width>
    <height>300</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
 </widget>
 <pixmapfunction></pixmapfunction>
 <connections/>
</ui>

可以将上面的ui文件内容中第5行class属性改成需要的名称即可。

需要注意的是:<关联ui文件和类文件>操作中的命名空间和类名也都需要同步调整。也就是用新类名替换原有的Form。

出现控制台窗口

在一开始时,CMakeLists文件中add_executable没有添加WIN32配置,会导致每次运行时,除了ui窗口,还会弹出控制台窗口。

快速方法

为了解决这个问题,可以在右键->属性->链接器->系统->子系统,选择窗口;

cmake扩展(1)——VS+CMake创建Qt项目,cmake,cmake

然后再在高级->入口点输入:mainCRTStartup

cmake扩展(1)——VS+CMake创建Qt项目,cmake,cmake

这样就可以解决这个问题。

不过,每当重新生成项目文件后,都会被重置。

根本解决方法

在CMakeLists中add_executable中添加WIN32配置,这将会从默认的控制台程序改成ui程序。确保永久不会出现控制台窗口文章来源地址https://www.toymoban.com/news/detail-645664.html

到了这里,关于cmake扩展(1)——VS+CMake创建Qt项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【QtQuick3D学习】使用Qt Design Studio设计UI并导入Qt Creator项目中使用——基于C++和Cmake

    新版本中项目文件全部放在了一起,见 【QtQuick3D学习】使用Qt Creator创建Qt Design Studio项目测试运行——基于C++和Cmake 【QtQuick3D学习】使用Qt Design Studio创建项目并使用Qt Creator打开测试运行——基于C++和Cmake 这里测试前后端分离,即使用Qt Design Studio设计前端和交互逻辑,C++写后

    2024年02月01日
    浏览(39)
  • 用Cmake快速生成vs工程

    官方网址: https://cmake.org/download/ 打开官网,根据自己需求下载所需文件。(本人是安装在Windows10-x64平台上,所以下文步骤均基于此平台) 下载好后,双击点开,再按照如下步骤进行操作: 点击运行 点击Next 勾选 I accept....... ,再选择Next 在Install Options处,一定要勾选 Add C

    2024年02月07日
    浏览(40)
  • 【libdatachannel】1 :cmake+vs2022 构建

    libdatachannel 是基于c++17实现的 cmake 链接openssl 可以参考【libcurl 】win32 构建 Release版本 修改cmakelist 链接openssl1.1.*

    2024年02月06日
    浏览(86)
  • VS2022 CMake报错解决小结

    目录 一、问题背景 二、问题分析 三、问题解决        VS2022中能够跨平台的工程类型就是CMake项目,一套代码能跨windows/Linux/Mac多种操作系统。而实际使用时,发现相关资料比较少,需要摸索一下。  碰到的问题简述:   1、C++ Intellisense信息可能过时,生成要刷新的CMake缓存

    2024年02月12日
    浏览(39)
  • windows下Cmake配置vs2022工程

    我电脑安装的是vs2022但是 cmake的gui 没有vs2022的选项 只有2019 而且选择2019 生成编译环境是错的 提示 “visual studio 16 2019 could not find any instance of visual studio.” 解决方法如下 先利用vs2022创建一个cmake项目 在项目路径下执行命令 生成如下 我们再去看cmake的配置UI上看 就已经有了我

    2024年02月12日
    浏览(55)
  • 在VS2019中CMake生成出现报错

    在vs中,项目-CMake设置 最下面有个显示高级 将Ninja改成Unix Makefiles就可以避开这个问题了。 一般改成unix Makefiles就能直接用了。 如果执意要选用Ninja编译,那么可能会比较麻烦,下面是一个比较详细的链接。 另外一种处理方式

    2024年02月12日
    浏览(46)
  • CMake引用QT、CMake构建一个转换为3d tile的开源代码

    在CMake里单独运行一下  find_package(Qt5     REQUIRED    COMPONENTS Core Xml Test) ,Core Xml Test 这三个是需要的qt组件; 情况如下;提示找不到QT; 根据资料,cmake引用qt需要3-4个方面,     首先Qt包含三个编译工具:moc、uic、rcc, moc:元对象编译器(Meta Object Compiler),用来处理带有

    2024年02月05日
    浏览(38)
  • cmake扩展(2)——windows下动态设置输出文件(dll/exe)版本

    windows下设置文件的版本需要通过VERSIONINFO接口,详情参考VERSIONINFO resource。这里我们根据模板做了一定的修改。 FILEVERSION和PRODUCTVERSION为必填项。内容以\\\',\\\'分隔,输出以\\\'.\\\'分隔(如设置为1,1,3,5,则实际输出版本为1.1.3.5)。可以直接是一整个变量,也可以是多个变量以\\\',\\\'隔开。 而

    2024年02月13日
    浏览(41)
  • CMake+QT使用教程

    下面是使用 Qt 用 C++ 编写的控制台应用程序的典型文件:CMakeLists.txt 项目目录结构 顶层CMakeLists.txt,包含整个项目的设置并调用add_subdirectory,顶层CMakeLists.txt设置的变量在子目录项目中可见 子目录项目CMakeLists.txt 项目目录结构 库项目文件(src/businesslogic/CMakeLists.txt) 最后,

    2024年02月15日
    浏览(52)
  • VS2022远程Linux使用cmake开发c++工程配置方法

    最近使用别人在VS2015上使用visualgdb搭建的linux开发环境,各种不顺手,一会代码不能调转了,一会行号没了,调试的时候断不到正确的位置,取消的断点仍然会进。因此重新摸索了一套使用vs的远程开发方法。 使用的相关工具及技术涉及: Vs2022 Ninja g++ gcc mobaxterm等。 采用ss

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包