QT--初识
一、组成QT的基本模块

二、创建一个简单工程
1、工程结构介绍
.pro 文件
QT += core gui # 包含的模块 greaterThan(QT_MAJOR_VERSION, ): QT += widgets # 大于Qt4版本 才包含widget模块 TARGET = QMainWindow # 应用程序名 生成的.exe程序名称
TEMPLATE = app # //模板类型 应用程序模板 DEFINES += QT_DEPRECATED_WARNINGS #定义编译选项。QT_DEPRECATED_WARNINGS表示当Qt的某些功能被标记为过时的,那么编译器会发出警告。 CONFIG += c++ # 使用c++11的特性 SOURCES += \ #源文件
main.cpp \
mainwindow.cpp HEADERS += \ # 头文件
mainwindow.h FORMS += \
mainwindow.ui #设计师界面。 # Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += targetmain.cpp
int main(int argc, char *argv[])
{
QApplication a(argc, argv); // 应用程序对象 有且仅有一个
Widget w; //定义MainWindow窗口对象
w.show(); //显示窗口 //程序进入消息循环,等待对用户输入进行响应。这里main()把控制权转交给Qt
//Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。
return a.exec(); //进行消息循环 阻塞
}Widget.cpp
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QPushButton *btn1 = new QPushButton("开始",this); //创建一个按键
btn1->move(,);
btn1->resize(,);
} Widget::~Widget() //析构代码
{
delete ui;
}
2、对象树
Qt中的对象树如下图所示:

QObject是以对象树的形式组织起来的:在创建QObject对象时,可以提供一个其父对象,我们创建的这个QObject对象会自动添加到其父对象的children()列表。当父对象析构的时候,这个列表中的所有对象也会被析构。(注意,这里的父对象并不是继承意义上的父类!)
QWidget继承自QObject,因此也继承了这种对象树关系。一个孩子自动地成为父组件的一个子组件,我们也可以自己删除子对象,它们会自动从其父对象列表中删除。
Qt 引入对象树的概念,在一定程度上解决了内存问题。
任何对象树中的 QObject对象 delete 的时候,如果这个对象有 parent,则自动将其从 parent 的children()列表中删除;如果有孩子,则自动 delete 每一个孩子。Qt 保证没有QObject会被 delete 两次,这是由析构顺序决定的。
局部对象的析构顺序应该按照其创建顺序的相反过程;
QT--初识的更多相关文章
- QT+UI界面初识+界面与编辑区结合操作
图片中时UI界面的初识,了解界面部件都是干啥的: 有了界面之后,使得QT的开发变的更加的便捷,但是在ui界面有时满足不了的功能,就需要使用代码解决,怎么利用代码呢? 首先:打开程序编辑区: #incl ...
- QT征程之初识qt
下载 https://www.qt.io/cn/download-open-source/ 下载QT离线安装包 Qt 5.5.1 for Linux 32-bit (546 MB) (info ...
- 初识---Qt解析XML文件(QDomDocument)
关于XML及其使用场景不在此多做介绍,今天主要介绍Qt中对于XML的解析.QtXml模块提供了一个读写XML文件的流,解析方法包含DOM和SAX,两者的区别是什么呢? DOM(Document Ob ...
- 初识Qt Creator
(1).Qt Creator是一个跨平台的.完整的Qt集成开发环境,其中包括了高级C++代码编辑器.项目和生成管理工具,下载地址http://download.qt.io/archive/qt/: ( ...
- Qt入门(1)——初识Qt
Qt是一个跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器.Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta ...
- 初识QT
前言:这是写给纯小白看的文章,大神可以自行绕道. QT的优势(摘自360百科): Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, ...
- 1初识QT
创建程序步骤: 打开Qt Creator 界面选择 New Project或者选择菜单栏 [文件]-[新建文件或项目]菜单项 弹出New Project对话框,选择Qt Widgets Applica ...
- 初识Qt简单动画
Qt提供了类QPropertyAnimation来实现图片的一些简单的动画操作效果. 1.新建一个Qt空项目,同时添加资源文件,并在资源文件中添加图片路径.之后在main.cpp函数中添加以下代码 # ...
- 初识Qt文件下载
1.新建一个Qt Gui应用,项目名称为http,基类选择为QMainWindow,类名设置为MainWindow. 2.在http.pro文件中的QT += core gui后添加\ networ ...
- 初识Qt基于http协议网页浏览
1.新建一个Qt Gui应用,项目名称为http,基类选择为QMainWindow,类名设置为MainWindow. 2.在http.pro文件中的QT += core gui后添加\ networ ...
随机推荐
- exports module.exports export export default之间的关系
exports 和module.exports是CommonJS模块规范 export export default是ES6模块的规范,两者完全是不同的概念. node应用由模块组成,采用的是Comm ...
- Java之java简介
Java最早有SUN公司(已被Oracle收购)的詹姆斯高斯林在上个世纪90年代初开发的一种编程语言,最初被命名为Oak,目标是针对小型家电设备的嵌入式应用,结果市场没啥反响.谁料到互联网的崛起,让O ...
- Redis哨兵(Sentinel)模式
Redis哨兵(Sentinel)模式 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用.这不是一种推荐的方式 ...
- 对QT多线程以及事件投递的理解
1.使用QObject子类的movetothread方法 代替 QThread子类的run 实现多线程. 使用原始QThread对象的start方法启动线程==>连接原始QThread对象的st ...
- 生信-使用NCBI进行目的基因的引物设计
使用NCBI进行目的基因的引物设计 全文概述 利用生信工具进行目的基因的引物设计,使用了NCBI进行筛选与设计引物,使用 idtdna对筛选出的DNA进行检查.本文分享了如何筛选出高质量的基因引物,帮 ...
- Create C/C++ DLLs in Visual Studio
https://docs.microsoft.com/zh-tw/cpp/build/dlls-in-visual-cpp?view=vs-2019 Walkthrough: Create and u ...
- PHP设计模式 - 享元模式
运用共享技术有效的支持大量细粒度的对象 享元模式变化的是对象的存储开销 享元模式中主要角色: 抽象享元(Flyweight)角色:此角色是所有的具体享元类的超类,为这些类规定出需要实现的公共接口.那些 ...
- [转帖]reptyr, 将正在运行的程序转换为新终端
reptyr, 将正在运行的程序转换为新终端 https://www.helplib.com/GitHub/article_45241 学习一下. 很抑郁的是 没有 arm64和龙芯平台的二进制文件. ...
- python 之 Django框架(APP和ORM的使用)
12.3 APP 12.31 创建APP 一个Django项目可以分为很多个APP,用来隔离不同功能模块的代码 用命令行创建一个APP: python3 manage.py startapp app0 ...
- STM32F030C8T6低功耗笔记
2018年5月8日 这个芯片的低功耗搞了好久了,刚开始是7mA降不下去,然后是降到了1mA,到现在的200uA,还是有地方没有弄好,目标是降到50uA左右,目前遇到了问题,进入STOP模式的时候降到了 ...