Visual Studio如何使用Qt开发桌面软件?

news2024/9/28 10:52:58

文章目录

  • 0.引言
  • 1.开发环境配置
  • 2.编写第一个Qt程序

0.引言

  笔者熟悉的第一门编程语言是C#,当初本科毕业设计需要进行Qgis的二次开发,本想利用C#编程,但网上资料较少,多是利用Qt进行Qgis的二次开发,Qt是利用C++编程,当时利用Qt编译器进行编程,相比Visual Studio还是多有不习惯,虽然知道VS有Qt插件可以使用,但当初嫌麻烦,就将就用Qt编译器进行软件开发完成本科毕业设计了。虽然经历过Qt编程,但现在若再进行Qt编程,心里难免还是有些不熟悉,这是因没有总结技术导致的,以及感觉还是利用VS进行编程舒服一些。为了掌握在Visual Studio中使用Qt编程的技术,本文阐述了Visual Studio和Qt的安装、配置和开发第一个程序。

1.开发环境配置

  (1)安装Visual Studio和Qt
  安装步骤详见:CloudCompare如何进行二次开发的第一步:编译?。

  (2)在Vsisual Studio中安装Qt插件
  在这里插入图片描述

  (3)若Qt插件下载很慢,可以进入以下网站下载
  镜像站: https://mirrors.tuna.tsinghua.edu.cn/qt/archive/vsaddin/2.7.2/?C=M&O=D

  在这里插入图片描述

  下载完成后双击打开进行安装。
  在这里插入图片描述

  (4)配置Qt
  在这里插入图片描述

2.编写第一个Qt程序

  (1)创建项目
  在这里插入图片描述
  在这里插入图片描述

  (2)添加依赖
  在这里插入图片描述

  (3)创建布局
  ①创建布局并编译
  在这里插入图片描述
  ②添加生成的ui_MyFirstQt.h到工程
  在这里插入图片描述

  (4)编写代码
  ①MyFirstQt.h添加槽函数
  在这里插入图片描述

#pragma once
  
#include <QtWidgets/QMainWindow>  
#include "ui_MyFirstQt.h"  
  
class MyFirstQt : public QMainWindow  
{  
    Q_OBJECT  
  
public:  
    MyFirstQt(QWidget *parent = Q_NULLPTR);  
  
    private slots:  
        void on_pushButton_firstName_clicked();  
private:  
    Ui::MyFirstQtClass ui;  
};

  ②MyFirstQt.cpp实现和绑定槽函数
  在这里插入图片描述

#include "MyFirstQt.h"
#include <qmessagebox.h>  
  
MyFirstQt::MyFirstQt(QWidget *parent)  
    : QMainWindow(parent)  
{  
    ui.setupUi(this);  
  
    connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(on_pushButton_firstName_clicked()));          
}  
  
void MyFirstQt::on_pushButton_firstName_clicked()  
{  
    QMessageBox::information(NULL, "Show", "Hello Qt!", QMessageBox::Ok);  
}

  (5)程序展示
  在这里插入图片描述

参考资料:
[1] _Tach. 在 Visual Studio 中使用 Qt 开发桌面应用的环境配置; 2022-07-08 [accessed 2023-04-18].
[2] yzy_1996. 【方法】在Visual Studio中使用Qt; 2018-08-22 [accessed 2023-04-18].
[3] Xx_Studying. Visual Studio 2019中使用Qt,步骤详解; 2022-07-26 [accessed 2023-04-18].
[4] iTsing203. 关于Visual Studio下载Qt插件很慢的解决方案之一; 2020-07-30 [accessed 2023-04-18].
[5] HHT0506. VS中新建Qt项目工程后显示无法打开源文件“QtWidgets/QApplication”的解决方案; 2019-05-09 [accessed 2023-04-18].
[6] weixin_101. Qt桌面应用开发; 2022-07-07 [accessed 2023-04-18].
[7] 不找你找谁. VS2015+QT5.7.1 程序打包发布; 2019-01-09 [accessed 2023-04-18].
[8] SongpingWang. Qt(一)消息提示框; 2022-02-25 [accessed 2023-04-18].
[9] Lemon-Ning. VS进行Qt开发时Qt Designer没有“转到槽”选项; 2021-02-05 [accessed 2023-04-18].

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/429679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何将aac转化为mp3,4种常用方法

aac是高级音频编码格式之一&#xff0c;支持多声道、解析度高&#xff0c;与mp3相比&#xff0c;aac格式的音质更佳&#xff0c;文件更小。在手机上录音时&#xff0c;保存下来的录音文件通常是AAC格式的。虽然aac格式有很多优点&#xff0c;但是&#xff0c;在不同的设备上&am…

POST请求与GET请求

get和post是HTTP协议中的两种发送请求的方法 HTTP是基于TCP/IP的关于数据如何在万维网中通信的协议 一、get请求与querystring get请求即客户端向server服务端请求数据&#xff0c;如&#xff1a;获取文章列表的分页码等 通过queryString来获取数据&#xff0c;如&#xff1…

设计模式 -- 模板方法模式

前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同…

java生成随机字符串的方法

今天我们来学习下随机数的生成&#xff0c;随机数就是不确定的数&#xff0c;它可以是任意一个整数或者字符串。下面就让我们一起来学习下随机字符串的生成吧。 首先&#xff0c;我们需要先定义一个名为 str的数组&#xff0c;并将它作为输入文件。 1、使用 Java中的 str作为输…

传播的最大能量场来自私域的裂变——“春生百味”品牌营销裂变活动复盘后记

关于大宗家电等耐用品品牌想要精准触达潜在用户&#xff0c;如何实施传播策略&#xff1f; 刚刚与方太品牌方复盘完3月份“春生百味”关于营销裂变直播活动的整体效果&#xff0c;我们借此次整体案例实施过程的梳理&#xff0c;以分享几个裂变过程中的关键点。 传播的最大能量…

React styled-components(二)—— props、attrs属性

styled-components props、attrs属性propsprops 穿透添加 attrs 属性获取 state 中的样式变量控制样式通过 props 控制样式通过 css 控制样式props props 穿透 styled-components 可以 props 穿透&#xff0c;把属性穿透到元素中。 通常&#xff0c;用 css 的 input 组件实现…

【Python】【进阶篇】十七、Python爬虫实现实时翻译

目录十七、Python爬虫实现实时翻译17.1 JS代码slat与sign17.2 Python代码表示参数17.3 完整程序实现十七、Python爬虫实现实时翻译 YD翻译是以异步方式实现数据加载的&#xff0c;要实现数据抓取&#xff0c;其过程极其繁琐。 上一节《Python爬虫的浏览器实现抓包》&#xff…

使用LeafLet叠加Geoserver wms图层到已有底图的方法

背景 随着现代城市交通建设的飞速发展&#xff0c;各个城市的地铁路线和地铁站点也是越来越多。地铁极大的方便了广大人民的交通出行。作为Giser&#xff0c;经常会遇到需要将一份shp数据在地图上展示&#xff0c;甚至需要在网页端进行浏览的需要。把shp这种空间矢量数据进行we…

数据库笔记Ch04----概念数据库的设计(1)

前三章我们学习了如何使用DBMS我们学会了增删改查&#xff0c;插入数据库&#xff0c;创建视图... 这一章是我们的数据库刚刚建立&#xff0c;只有一个需求&#xff0c;需要根据用户的需求来创建数据库&#xff0c;每个表有哪些属性&#xff0c;参照关系是什么&#xff0c;主键…

一.Jetpack全套

Jetpack全套一.Jetpack介绍1.特性&#xff1a;2.分类&#xff1a;二.应用架构三.LifeCycle:1.简介2.简单使用3.实战&#xff1a;Dialog内存泄漏四.VideModel1.介绍2.简单使用3.AndroidViewModel使用4.使用viewmodel实现fragment直接数据共享五.LiveData1.介绍2.常用方法3.使用场…

车载 OTA技术概念

1 OTA技术概念 随着高级辅助驾驶的发展和自动驾驶的引入&#xff0c;汽车变得越来越智能&#xff0c;这些智能汽车被软件控制&#xff0c;装有巨量的软件程序&#xff0c;当出现一个软件程序问题或者更新时&#xff0c;如果按照传统的解决方式&#xff0c;那都将是一项很繁重的…

【深度学习】基于Hough变化的答题卡识别(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。⛳座右铭&#…

云开发--实现发送邮件+短信+链接跳转小程序功能

目录 1、小程序实现发送邮件 准备一个qq邮箱&#xff0c;并启动SMTP服务 确定小程序云开发环境&#xff0c;并新建云函数 2、小程序实现发送短信 确定应用 确定签名 确定模板 编写云函数-发送短信 3、链接跳转小程序 H5 配置 生成 URL Link 学习记录&#xff1a; …

【获奖案例巡展】科技向善之星——中航电梯5G+大数据管理平台

为表彰使用大数据、人工智能等基础软件为企业、行业或世界做出杰出贡献和巨大创新的标杆项目&#xff0c;星环科技自2021年推出了“新科技 星力量” 星环科技科技实践案例评选活动&#xff0c;旨在为各行业提供更多的优秀产品案例&#xff0c;彰显技术改变世界的力量&#xff0…

网络编程(python)

文章目录一、网络基础&#xff08;IP&#xff0c;端口&#xff0c;TCP等&#xff09;二、TCP网络应用可开发流程三、HTTP协议和静态Web服务器四、搭建Python自带静态Web服务器一、网络基础&#xff08;IP&#xff0c;端口&#xff0c;TCP等&#xff09; IP地址&#xff1a;标识…

企业的数据中台到底指的是什么?_光点科技

随着数据技术的不断发展和企业数据应用的广泛应用&#xff0c;越来越多的企业开始将数据中台作为数字化转型的核心战略之一。那么&#xff0c;企业的数据中台到底指的是什么呢&#xff1f; 数据中台是一种以数据为核心的企业数字化转型架构&#xff0c;旨在通过数据的汇聚、整合…

Lego- 美团接口自动化测试实战(详细解析)

目录&#xff1a;导读 一、概述 1.1 接口自动化概述 1.2 提高 ROI 1.3 Lego 的组成 二、脚本设计 2.1 Lego 的做法 2.2 测试脚本 2.3 配置文件 三、用例设计 3.1 一些思考 3.2 Lego 接口自动化测试用例 3.3 参数化 3.4 前后置动作 3.5 执行各部分 四、网站功能 …

软件测试员----面试,你准备好了么?

最近有机会做一些面试工作&#xff0c;主要负责面试软件测试人员招聘的技术面试。 之前一直是应聘者的角色&#xff0c;经历了不少次的面试之后&#xff0c;多少也积累一点面试的经验&#xff0c;现在发生了角色转变。初次的面试就碰到个工作年限比我长的&#xff0c;也没有时间…

c++11 标准模板(STL)(std::stack)(四)

定义于头文件 <stack> template< class T, class Container std::deque<T> > class stack;std::stack 类是容器适配器&#xff0c;它给予程序员栈的功能——特别是 FILO &#xff08;先进后出&#xff09;数据结构。 该类模板表现为底层容器的包装…

Spark学习——DataFrame清洗HDFS日志并存入Hive中

目录 1.开启Hadoop集群和Hive元数据、Hive远程连接 2.配置 3.读取日志文件并清洗 4.单独处理第四列的数据——方法一&#xff1a; 5.单独处理第四列的数据——方法二&#xff1a; 6.单独处理第四列的数据——方法三&#xff1a; 7.数据清洗结果展示 8.存入Hive中 9.…