Qt中对main.cpp的代码解释
#include "mywidget.h"
#include <QApplication> // 包含一个应用程序类的头文件// main程序入口,argc命令行变量的数量,argv命令行变量的数组
int main(int argc, char *argv[])
{// a应用程序对象,在qt中,应用程序对象有且仅有1个QApplication a(argc, argv);// 窗口对象,父类为QWidgetmyWidget w;// 窗口对象默认不会显示,必须调用show方法w.show();// 让a进入消息循环,不会一闪而过,让代码阻塞到这行return a.exec();
}
QT += core gui
// Qt包含的模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
// 大于4版本以上包含widget模块
TARGET = qt2
// 目标 生成的.exe程序的名称
TEMPLATE = app
// 应用程序模板
SOURCES += \main.cpp \mywidget.cpp// 源文件
HEADERS += \mywidget.h// 头文件
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
// 包含头文件QWidget 窗口类
class myWidget : public QWidget
{Q_OBJECT// 宏,允许类中使用信号与槽机制
public:myWidget(QWidget *parent = 0);// 带参数的构造函数~myWidget();// 析构函数
};
#endif // MYWIDGET_H
命名规范
类名:首字母大写,单词和单词之间首字母大写
函数名/变量名:首字母小写,单词和单词之间首字母大写快捷键
注释:ctrl+/
运行:ctrl+run
编译:ctrl+build
查找:ctrl+find
整行移动:ctrl+shift+↑/↓
帮助文档:
(1)F1
(2)左侧图标
(3)assistant
F1全屏
Esc退出全屏
Esc退出帮助文档
自动对齐:ctrl+i
同名之间的.h和.cpp的切换:F4
创建第一个按钮
QPushButton *btn = new QPushButton();
// btn->show();
// show是以顶层的方式弹出窗口控件
// 让btn对象依赖在mywidget窗口中
btn->setParent(this); //设置到对象树中
// 显示文本
btn->setText("XXX");创建第二个按钮:按照控件大小创建窗口
QPushButton *btn = new QPushButton(“XXX”,this);
// 重置窗口大小
resize(600,400);
// 移动第二个按钮
btn->move(100,100);
//设置窗口标题
setWindowTitle("First");
// 设置固定窗口大小
setFixedSize(600,400);
打印和释放的顺序是不一样的
对象树:当创建的对象在堆区的时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,对象会放入到对象树当中,在一定程度上简化了内存回收机制
自定义信号
写到signal下
返回值是void,只需要声明,不需要实现
可以有参数
可以重载槽函数
早期必须写到public slots下
高级的版本可以写到public或者全局下
返回值为void,需要声明,也需要实现
可以有参数,可以发生重载
拓展
信号可以连接信号
一个信号可以连接多个槽函数
多个信号可以连接一个槽函数
信号与槽函数的参数必须类型一一对应
信号参数个数可以多于槽函数的参数个数
Qt4版本以前的连接
使用SIGNAL()以及SLOT
优点:参数直观
缺点:参数类型不做检测
Qt5以上支持Qt4版本的写法,反之不支持
Lambda
Qt4:
CONGIG+=C++11
Qt中对main.cpp的代码解释相关推荐
- qt控制程序打开记事本_QT记事本小部件教程(二):应用程序主要源文件main.cpp详细代码...
Qt是目前最先进.最完整的跨平台C++开发工具.它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具.如今,Qt已被运用于超过70个行业.数千家企业,支持数百万设备及 ...
- C++|Qt中QTreeWidget基本操作及完整代码下载
因为下个星期要中要做一个关于QTreeWidget相关的东西,特先学习相关点东西,明天就直接开始做了. 涉及如下技术: 1.在QTreeWidget中添加头(列头). 2.往QTreeWidget中添 ...
- QT中信号和槽的简单解释
代码见: https://blog.csdn.net/cloud323/article/details/82192241 思想介绍为: 一.信号 当对象的内部状态发生改变,信号就被发射.只有定义了一个 ...
- 层次聚类及scipy中的层次聚类python代码解释
层次聚类假设类别之间存在层次结构,将样本聚到层次化的类中.层次聚类分为自下而上.自上而下聚类的两种方法.由于每个样本只能属于一个类别,因此层次聚类属于硬聚类. 基本原理(本文只讲述自下而上的聚合方法) ...
- QT每日一练day29:QT中的多线程探究
一.未使用多线程,则w0先运行完后,w1才开始运行 运行结果(GIF动图): main.cpp xiaowen_QT_day29.pro QT+=widgets SOURCES += \main.cp ...
- 【转】QT中使用MYSQL中文乱码解决方法
[转]QT中使用MYSQL中文乱码解决方法 Linux下乱码解决办法: 1.在QT程序的main.cpp的main函数中添加红色字那三句: int main(int argc, char *argv[ ...
- 2.QT中使用资源文件,程序打包
1 程序中使用资源文件 A 一个QT空项目 B 右击项目,添加新文件 添加后的效果是 C 右击main.prc,选择"添加现有项",找到要使用的资源文件.最终的效果是: ...
- Qt中Widget Aplication项目的文件内容介绍
项目创建完成之后会出现如下界面: 之后对项目中的各个文件内容进行介绍 1 001.pro文件.一般项目中的.pro 文件是项目的项目文件 QT += core gui #Qt包含的模块greaterT ...
- QT中的常用数据结构
QT中的常用数据结构 QString 代码中使用最多的莫过于string,QString提供了丰富的接口,使用方便,以下为常用接口: size() isEmpty() data() toUInt() ...
最新文章
- 未来企业IT选型将更关注社交性(转载)
- 深入XP之认识的引导文件NTLDR
- msfvenom java_Msfvenom命令总结大全
- 第二章 GuassDB 数据库基础知识
- Web3.0来了!玩法变了
- 微信看一看实时相关推荐介绍
- CVPR2021论文集锦 | CVPR2021最新论文 | CVPR2021审稿结果 | CVPR2021录取结果
- 高性能服务器编程 Twisted编程基础
- java 获取域名_Java获取域名,Java从URL地址中获取域名,Java从Request 获取域名
- Mac 上使用 zmodem 发送和接收堡垒机文件
- nslookup默认服务器修改,Windows nslookup“默认服务器:未知”是什么意思
- VMware Workstation启动虚拟机时蓝屏
- 微信支付 postman_支付宝微信刷脸支付系统搭建服务商平台怎么做
- 隐藏安卓平板状态栏,还你全面屏体验
- 7个秘诀,带你由数据分析师成长为数据科学家
- mysql注入带外通道攻击_MySQL注入攻击与防御
- 课题申报撰写方法详解,课题研究立项、科研成果
- 案例 :手把手教你运用深度学习构建视频人脸识别模型(Python实现)
- [转]【听译大师说话】python 创始人访谈录 1: 关于 django 和 ruby
- RAID0/1/5/6/10/50/JBOD如何选择
热门文章
- 别人的电子书,你的电子书,都在bookdown
- R 学习 - 富集分析泡泡图回应
- Autokroma AfterCodecs for Mac - 与众不同的特殊编码渲染插件
- tomcat6的项目能直接在tomcat7上用吗_极尽人性化的设计: 能“隐形”的笔记本电脑支架...
- 简单英文题 24 Divisor and Multiple(python)
- 1.3编程基础之算术表达式与顺序执行 01 A+B问题
- thinkpad t460p恢复原厂系统以及设置的方式
- requirejs加载顺序_前端模块化之AMD — Requirejs的使用
- 分区界限必须调整为高于最后一个分区界限_不花一分钱,为SSD硬盘腾空间
- Qt实践| HTTP知识点-Qt填充referer请求头盗取图片