第一个Qt程序

创建项目

进入ui界面拖一个按钮

在头文件中添加函数说明

#ifndef HELLO_H
#define HELLO_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui {
class Hello;
}
QT_END_NAMESPACEclass Hello : public QMainWindow
{Q_OBJECTpublic:Hello(QWidget *parent = nullptr);~Hello();private slots:void showDialog();private:Ui::Hello *ui;
};
#endif // HELLO_H

holle.cpp

#include "hello.h"
#include "ui_hello.h"#include <QMessageBox>Hello::Hello(QWidget *parent): QMainWindow(parent), ui(new Ui::Hello)
{ui->setupUi(this);//信号与槽进行连接connect(ui->pushButton,&QPushButton::clicked,this,&Hello::showDialog);
}Hello::~Hello()
{delete ui;
}//槽函数
void Hello::showDialog()
{QMessageBox::information(this,QString::fromLocal8Bit("hello"),QString::fromLocal8Bit("hello"));
}

代码详解

#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);  // 每个qt窗口应用程序都需要有一个QApplication对象HelloCosBrowser w;w.show();return a.exec(); // exec 让程序进入事件循环,作用:接收来自用户的事件,如鼠标事件,键盘事件
}
#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui { class hello; }
QT_END_NAMESPACEclass hello : public QWidget  // QWidget是所有应用程序窗口类的基类
{Q_OBJECT  // 支持Qt的特性,如信号槽、对象树、元对象等public:hello(QWidget *parent = nullptr);  //parent == nullptr时,该窗口为独立窗口,可在任务栏看到;当parent != nullptr,该窗口作为主窗口的控件~hello();private slots:void showDialog();private:Ui::hello *ui;
};
#endif // HELLOCOSBROWSER_H

文件列表

文件名称描述
pro文件该文件是Qt的项目文件,qmake工具可根据此文件生成makefile
pro.user文件该文件包含和用户相关的项目信息(不需要关心)
.ui文件Qt的设计师界面文件
.cpp文件C++源文件
.h文件C++头文件

moc编译器的由来

  • 新的信号槽idea如何实现

Qt编译过程

moc的运行方式

  • moc编译工具由Qt框架自动调用
  • 扫描C++头文件,查找Q_OBJECT宏

使用方法

  • 继承QObject对象和其子类
  • 包含Q_OBJECT宏

为窗口加上图标

  • 准备图标文件
  • 调用setWindowIcon方法
{ui->setupUi(this);connect(ui->pushButton, &QPushButton::clicked, this, &HelloCosBrowser::showDialog);setStyleSheet("QWidget{font-size: 24pt;}"); //qss对标cssQIcon icon;icon.addFile("F:/4-2/images/logo.ico");setWindowIcon(icon);
}

为应用程序加上图标

  • 准备图标文件,格式为ico
  • 修改pro工程文件 RC_ICONS=logo.ico
  • 当指定了应用程序图标后,不需额外指定窗口图标

发布应用的三种方式

手动部署

拷贝动态库到exe目录下

打开文件的debug目录

按提示从qt目录复制dll

windeployqt部署

  • 查找windeployqt.exe程序
  • 加入环境变量
  • 执行命令windeployqt.exe exe所在目录

使用Creator部署

  • 项目导航窗口-运行-部署-添加自定义部署
  • 输入windeployqt.exe程序及对应的命令行参数
  • 执行部署命令

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

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

相关文章

上海亚商投顾:沪指缩量调整 NMN概念股逆势大涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 市场全天震荡调整&#xff0c;三大指数午后一度跌超1%&#xff0c;北证50指数则涨超4%&#xff0c;北交所个股…

探寻电商 API 接口提升用户体验之道

在当今数字化时代&#xff0c;电商平台已成为人们购物的主要渠道之一。而电商 API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;接口则是连接电商平台与各种应用和服务的桥梁&#xff0c;对于提升用户体验起着至关重要的作用。 一、…

当遇到 502 错误(Bad Gateway)怎么办

很多安装雷池社区版的时候&#xff0c;配置完成&#xff0c;访问的时候可能会遇到当前问题&#xff0c;如何解决呢&#xff1f; 客户端&#xff0c;浏览器排查 1.刷新页面和清除缓存 首先尝试刷新页面&#xff0c;因为有时候 502 错误可能是由于网络临时波动导致服务器无法连…

前端发送请求格式

1.multipart/form-data格式发送请求参数 什么时候用&#xff1a; 当后端API要求以表单的形式接收数据时&#xff0c;比如<input type"text" name"username">和<input type"password" name"password">&#xff0c;这些数据…

html全局属性、框架标签

常用的全局属性&#xff1a; 属性名含义id 给标签指定唯一标识&#xff0c;注意&#xff1a;id是不能重复的。 作用&#xff1a;可以让label标签与表单控件相关联&#xff1b;也可以与css、JavaScript配合使用。 注意&#xff1a;不能再以下HTML元素中使用&#xff1a;<hea…

自动化部署-01-jenkins安装

文章目录 前言一、下载安装二、启动三、问题3.1 jdk版本问题3.2 端口冲突3.3 系统字体配置问题 四、再次启动五、配置jenkins5.1 解锁5.2 安装插件5.3 创建管理员用户5.4 实例配置5.5 开始使用5.6 完成 总结 前言 spingcloud微服务等每次部署到服务器上&#xff0c;都需要本地…

鸿蒙到底是不是纯血?到底能不能走向世界?

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 2016年5月鸿蒙系统开始立项。 2018年美国开始经济战争&#xff0c;其中一项就是制裁华为&#xff0c;不让华为用安卓。 2019年8月9日华为正式发布鸿蒙系统。问题就出在这里&#xff0c;大家可以仔细看。 安卓一…

从零开始学五笔(三):横区字根

从 1 区开始讲解字根&#xff1a; 先介绍按键的区位号、口诀内容、口诀说明然后列每个字根能组成什么汉字&#xff0c;难拆字将用中括号标出 ‍ G 键 区位号&#xff1a;11 口诀&#xff1a;王旁青头戋&#xff08;兼&#xff09;五一 说明&#xff1a; 王旁&#xff1a…

VUE, element-plus, table分页表格列增加下拉筛选多选框,请求后台

简介 为了方便表格查询时可以筛选列的值&#xff0c;需要给列增加筛选框&#xff08;多选框&#xff09;&#xff0c;element-plus提供了列的filter字段&#xff0c;但是基于表格数据的筛选&#xff0c;不会重新请求后台&#xff0c;而且当前表格数据有多少个条目&#xff0c;…

荣耀MagicOS 9.0发布会及开发者大会丨一图读懂应用服务及商业合作分论坛

更多优质流量变现服务&#xff0c;可点击荣耀广告变现服务查看&#xff1b; 荣耀远航计划——应用市场【耀闪行动】全新上线&#xff0c;更多激励及资源扶持可点击荣耀应用市场耀闪行动查看。

香港大学联合上海AI LAB,提出首个人机交互一体化大模型

导读&#xff1a; 具身智能为人与机器人的交互带来了更多便利&#xff0c;利用大语言模型&#xff08;LLMs&#xff09;的推理能力&#xff0c;能够将人类的语言指令逐步转换为机器人可以理解的指令信号。 然而&#xff0c;由于缺乏环境信息作为机器人理解环境和人类指令的上…

FPGA开发verilog语法基础1

文章目录 主体内容1.1 逻辑值1.2 数字进制格式1.3 数据类型1.3.1 寄存器类型1.3.2 线网类型1.3.3 参数类型1.3.4 存储器类型 参考资料 主体内容 1.1 逻辑值 1&#xff0c;逻辑0&#xff0c;表示低电平 2&#xff0c;逻辑1&#xff0c;表示高电平 3&#xff0c;逻辑X&#xff0…

网站安全问题都有哪些,分别详细说明

网站安全问题涉及多个方面&#xff0c;以下是一些常见的网站安全问题及其详细说明&#xff1a; 数据泄露 问题描述&#xff1a;数据泄露是指网站存储的用户敏感信息&#xff08;如用户名、密码、信用卡信息等&#xff09;被非法获取。黑客可能通过SQL注入、XSS攻击等手段窃取这…

学习分布式系统我来助你!【基本知识、基础理论、设计模式、应用场景、工程应用、缓存等全包含!】

基本知识 什么是分布式 分布式系统是一种通过网络连接多个独立计算机节点&#xff0c;共同协作完成任务的系统架构&#xff0c;具有高度的可扩展性、容错性和并发处理能力&#xff0c;广泛应用于大数据处理、云计算、分布式数据库等领域。 通俗来讲&#xff1a;分布式系统就…

git入门操作(2)

文章目录 git入门操作&#xff08;2&#xff09;git diff 查看差异git diff gitignore忽略文件1.在代码仓库创建这个文件2.添加对 log 文件过滤 连接远程仓库与ssh配置远程仓库和本地仓库关联步骤分支基本操作步骤命令&#xff1a; 合并冲突分支合并逻辑1.新建分支 dev&#xf…

网络安全威胁模型浅谈

威胁建模&#xff08;Threat Modeling&#xff09;是一种系统化识别和评估潜在安全威胁的方法&#xff0c;帮助设计和实施有效的安全策略。以下是一些常见的威胁建模方法&#xff1a; 1. **STRIDE**&#xff1a;这是微软开发的一种威胁建模方法&#xff0c;主要关注六种威胁类…

ONLYOFFICE 文档8.2版本已发布:PDF 协作编辑、改进界面、性能优化等更新

ONLYOFFICE 在线编辑器最新版本已经发布&#xff0c;其中包含30多个新功能和500多个错误修复。阅读本文了解所有更新。 关于 ONLYOFFICE 文档 ONLYOFFICE 是一个开源项目&#xff0c;专注于高级和安全的文档处理。坐拥全球超过 1500 万用户&#xff0c;ONLYOFFICE 是在线办公领…

164.最大间距

目录 题目解法1. 初始化步骤2. 创建桶3. 填充桶4. 计算最大间隔遍历桶&#xff1a; 最终结果结论 int minVal *min_element(nums.begin(), nums.end());这里为什么要带*号解释 * 号的作用&#xff1a;总结 题目 给定一个无序的数组 nums&#xff0c;返回 数组在排序之后&…

Tcp_Sever(线程池版本的 TCP 服务器)

Tcp_Sever&#xff08;线程池版本的 TCP 服务器&#xff09; 前言1. 功能介绍及展示1.1 服务端连接1.2 客户端连接&#xff08;可多个用户同时在线连接服务端&#xff09;1.3 功能服务1.3.1 defaultService&#xff08;默认服务&#xff09;1.3.2 transform&#xff08;大小写转…

【Qt】qss 设置通过 addAction 添加的 QToolButton的图标

文章目录 1. 使用 QSS 和状态示例代码2. 使用 QSS 动态更改图标QSS 示例总结 在 Qt 中&#xff0c;QSS 不能直接用于为 QAction 设置图标&#xff0c;因为 QSS 主要用于样式和外观的设置&#xff0c;而不是用于数据&#xff08;如图标&#xff09;的设置。 不过&#xff0c;你…