QT5.15.2+ubuntu20.04+vscode联合开发配置

1.QT安装包下载

安装一些依赖
9412-9432

sudo apt-get update
sudo apt-get install -y libgl1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev libfontconfig1-dev libfreetype6-dev libicu-dev libinput-dev libxkbcommon-dev libsqlite3-dev libssl-dev libpng-dev libjpeg-turbo8-dev libglib2.0-dev

2.安装

一开始可能没有5.15.2,点击Archive–>筛选就出来了,里面的组件都可以勾上,或者后续自己添加,我这里都勾上了,然后就是等待。
这里注意到,安装的位置是在opt/xxx,这个自己记住,后面会用来的配置系统的环境。
请添加图片描述
安装结束如下
请添加图片描述

3.验证是否成功

shu@shu:/opt/Qt/Tools/QtCreator/bin$ ./qtcreator.sh 

如果正常出现界面,那就ok。
在这里插入图片描述

但是大概率会出现一个xcb的问题

xcb问题处理

终端输入
export QT_DEBUG_PLUGINS=1

cd 进入qt的安装目录/Tools/QtCreator/lib/Qt/plugins/platforms

运行ldd
ldd libqxcb.so |grep not
出现缺少的库,就进行安装
例如
sudo apt-get install libxcb-xinerama0
sudo apt install libxcb-cursor0 

然后再次运行
shu@shu:/opt/Qt/Tools/QtCreator/bin$ ./qtcreator.sh 

4.联合vscode进行开发

vscode 的安装就不再说了,需要用到几个插件,如下在这里插入图片描述

在这里插入图片描述如果是新的环境,需要安装cmake

sudo apt install cmake

然后进入设置
这里直接就是cmake,当然也可以设置完整的路径
在这里插入图片描述
设置qtcreator
在这里插入图片描述最重要的!!!
调试gdb
编译make
这里路径都是直接写到可执行文件
然后就是qt dir 和qt kit dir
在这里插入图片描述到此,配置结束

5.测试

重新打开vscode

按F1
输入qt,选择New project
输入项目名称
选择cmake
选择ui,yes
就ok了
在这里插入图片描述

ctrl+shift+b
选择cmake生成 --》可能会出现失败,
可以看到左下角有一个齿轮--》点击生成就ok了
--》最后点击左下角的三角形运行就出现了界面

在这里插入图片描述在这里插入图片描述

6. 配合qtcreater

需求:写一个按钮,点击出现消息
如何做呢?

1. 点击ui文件
2.F1选择Qt: Edit in Qt Creator
3. 会出现ui设计界面(这就和原版qt开发类似了)
4. 添加按钮,保存(vscode会同步改变)
5. 重新编译生成运行
6. "ui_hello.h"文件build/hello_autogen/include中
7. 在里面可以看到新加入的pushbutton
8. 在hello.h中添加
	#pragma once
	#include "ui_hello.h"
	#include <QMainWindow>
	#include <QPushButton>
	#include <QMessageBox>
	
	class hello : public QMainWindow 
	{
	    Q_OBJECT
	    
	public:
	    hello(QWidget* parent = nullptr);
	    ~hello();
	
	public slots:
	    void clicked();
	
	private:
	    Ui_hello* ui;
	};

9. 在hello.c中加入
10.#include "hello.h"

	hello::hello(QWidget* parent)
	    : QMainWindow(parent)
	    , ui(new Ui_hello)
	{
	    ui->setupUi(this);
	    connect(ui->pushButton,&QPushButton::clicked,this,&hello::clicked);
	}
	
	hello::~hello()
	{
	    delete ui; 
	}
	
	void hello::clicked()
	{
	    QMessageBox::information(this,"Clicked","消息");
	} 
11. 重新编译运行,结果如下

在这里插入图片描述

7 说一下分文件编写的CMakeLists.txt的设置

作为一个项目,大家肯定不希望所有文件都放在一个目录中,所以可以将一个工程文件分为src,include,build,icons等
目录结果如下
手动设置的方法如下
在这里插入图片描述

这里主要需要更改的是系统生成的CMakeLists.txt

cmake_minimum_required(VERSION 3.5) # CMake install : https://cmake.org/download/
project(QtJob LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_PREFIX_PATH "/opt/Qt/5.15.2/gcc_64") # Qt Kit Dir
# 下面三个是设置为自动,可以不需要
# CMAKE_AUTOUIC ON:这个选项会启用QtUser Interface Compiler (uic)的自动执行。
# uic工具用于将Qt Designer创建的.ui文件转换为C++头文件,这些文件包含了用户界面的生成代码。
# CMAKE_AUTOMOC ON:这个选项会启用QtMeta-Object Compiler (moc)的自动执行。
# moc工具用于处理C++源文件中的Qt元对象系统宏(例如Q_OBJECT),并生成必要的源代码。
# CMAKE_AUTORCC ON:这个选项会启用QtResource Compiler (rcc)的自动执行。
# rcc工具用于将.qrc资源文件转换为C++源文件,这些文件包含了应用程序资源的嵌入式二进制数据。
# set(CMAKE_AUTOUIC ON)
# set(CMAKE_AUTOMOC ON)
# set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 COMPONENTS Widgets REQUIRED) # Qt COMPONENTS
aux_source_directory(./src srcs)

# 但需要添加下面的资源代码,也就是手动设置
include_directories(${CMAKE_SOURCE_DIR}/include)
set(CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_SOURCE_DIR}/include)  #设置 UIC 搜索路径
file(GLOB HEADERS ${CMAKE_SOURCE_DIR}/include/*.h) #*/包含所有头文件
set(UI_FILES include/QtJob.ui)
qt5_wrap_ui(UI_HEADERS ${UI_FILES})
qt5_wrap_cpp(MOC_SOURCES ${HEADERS})
# 图标资源文件
set(RESOURCES
resources.qrc
)
qt5_add_resources(RESOURCE_SOURCES ${RESOURCES})



# Specify MSVC UTF-8 encoding   
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")

add_executable(${PROJECT_NAME}
    WIN32 # If you need a terminal for debug, please comment this statement 
    ${srcs} 
    ${HEADERS}
    ${UI_FILES}
    ${MOC_SOURCES}
    ${RESOURCE_SOURCES}
) 
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets) # Qt5 Shared Library


vscode自动生成如下

cmake_minimum_required(VERSION 3.5) # CMake install : https://cmake.org/download/
project(QtJob LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_PREFIX_PATH "/opt/Qt/5.15.2/gcc_64") # Qt Kit Dir
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 COMPONENTS Widgets REQUIRED) # Qt COMPONENTS
aux_source_directory(./src srcs)

# 下面是需要添加的
include_directories(${CMAKE_SOURCE_DIR}/include)
file(GLOB HEADERS ${CMAKE_SOURCE_DIR}/include/*.h) #*/
set(RESOURCES resources.qrc)



# Specify MSVC UTF-8 encoding   
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")

add_executable(${PROJECT_NAME}
    WIN32 # If you need a terminal for debug, please comment this statement 
    ${srcs} 
    ${HEADERS}
    ${RESOURCES}
) 
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets) # Qt5 Shared Library

注意一下resources.qrc文件

<RCC>
    <qresource prefix="/">
        <file>icons/xxx.png</file>
        <file>icons/yyy.png</file>
    </qresource>
</RCC>

8.QT5.9+windows+vscode联合开发配置

参考blog
在这里插入图片描述
奇怪,windows下的CMakeLists.txt居然设置ui有问题,目录i结构还是和上面一样
更改如下

cmake_minimum_required(VERSION 3.5) # CMake install : https://cmake.org/download/
project(MainWindow LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_PREFIX_PATH "C:/Qt/Qt5.9.8/5.9.8/mingw53_32") # Qt Kit Dir
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 COMPONENTS Widgets REQUIRED) # Qt COMPONENTS
aux_source_directory(./src srcs)
include_directories(${CMAKE_SOURCE_DIR}/include)
file(GLOB HEADERS ${CMAKE_SOURCE_DIR}/include/*.h) #*/
# 这个是多设置的
set(CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_SOURCE_DIR}/include)
set(RESOURCES resources.qrc)


# Specify MSVC UTF-8 encoding   
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")


add_executable(${PROJECT_NAME}
    WIN32 # If you need a terminal for debug, please comment this statement 
    ${srcs} 
    ${HEADERS}
    ${RESOURCES}
) 
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets) # Qt5 Shared Library

9.采用pri文件和qmake开发+vscode

最近接公司的项目用到的是qtcreator设计的,想配一下vscode来编译
还是在之前的qt插件里面配置,主要是配置的msvc,界面如下:
在这里插入图片描述
由于没有cmakelist文件,所以直接配置编译可以比较难,我采用先配置一个简单的工程,将里面的配置文件拷贝到项目工程,这样比较快,比较简单。
目录结构如下,都是自动生成的:
在这里插入图片描述
配置文件也贴一下吧
.vscode

c_cpp_properties.json
{
    "configurations": [
        {
            "name": "qt",
            "includePath": [
                "C:/Qt2//5.15.2/msvc2019_64/include/**",
                "${workspaceRoot}/**"
            ],
            "cStandard": "c11",
            "cppStandard": "c++17"
        }
    ],
    "version": 4
}
launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceRoot}/build/debug/hello.exe",//这里需要改一下为你自己工程的可执行程序位置
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "environment": [],
            "console": "integratedTerminal",
            "preLaunchTask": "debug"
        }
    ]
}
settings.json
{
    "qtConfigure.qtKitDir": "C:/Qt2//5.15.2/msvc2019_64"
}
tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "debug",
            "type": "shell",
            "command": "cmd",
            "args": [
                "/c",
                "${workspaceRoot}/scripts/build_debug.bat",
                "debug"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "release",
            "type": "shell",
            "command": "cmd",
            "args": [
                "/c",
                "${workspaceRoot}/scripts/build_release.bat",
                "release"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

然后就是script文件夹中的bat文件

build_debug.bat----这里面也是需要改pro位置,exe位置
@echo off

set QT_DIR=C:\Qt2\\5.15.2\msvc2019_64
set SRC_DIR=%cd%
set BUILD_DIR=%cd%\build

if not exist %QT_DIR% exit
if not exist %SRC_DIR% exit
if not exist %BUILD_DIR% md %BUILD_DIR%

cd build

call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64

%QT_DIR%\bin\qmake.exe %SRC_DIR%\hello.pro -spec win32-msvc  "CONFIG+=debug" "CONFIG+=console"
if exist %BUILD_DIR%\debug\hello.exe del %BUILD_DIR%\debug\hello.exe
nmake Debug
if not exist %BUILD_DIR%\debug\Qt5Cored.dll (
  %QT_DIR%\bin\windeployqt.exe %BUILD_DIR%\debug\hello.exe
)

build_release.bat------同上
@echo off

set QT_DIR=C:\Qt2\\5.15.2\msvc2019_64
set SRC_DIR=%cd%
set BUILD_DIR=%cd%\build

if not exist %QT_DIR% exit
if not exist %SRC_DIR% exit
if not exist %BUILD_DIR% md %BUILD_DIR%

cd build

call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64

%QT_DIR%\bin\qmake.exe %SRC_DIR%\hello.pro -spec win32-msvc  "CONFIG+=release"
if exist %BUILD_DIR%\release\hello.exe del %BUILD_DIR%\release\hello.exe
nmake Release
if not exist %BUILD_DIR%\release\Qt5Core.dll (
  %QT_DIR%\bin\windeployqt.exe %BUILD_DIR%\release\hello.exe
)


然后就是ctrl shift B 编译后,可执行文件在build里面

学习blog

qt教程

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值