二、QT文件介绍

1.(.pro文件)项目管理文件

  以不加UI库的项目为例

复制代码
 1 QT       += core gui
 2 
 3 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 4 
 5 CONFIG += c++11
 6 
 7 DEFINES += QT_DEPRECATED_WARNINGS
 8 
 9 SOURCES += \
10     main.cpp \
11     mywidget.cpp
12 
13 HEADERS += \
14     mywidget.h
15 
16 # Default rules for deployment.
17 qnx: target.path = /tmp/$${TARGET}/bin
18 else: unix:!android: target.path = /opt/$${TARGET}/bin
19 !isEmpty(target.path): INSTALLS += target
复制代码
配置项 含义
QT

指定项目中用到的所有模块

core模块包含了QT GUI界面开发的核心功能,其他所有模块都需要依赖于此模块

gui模块提供了用于开发GUI应用程序的必要一些类

SQL包含操作数据库相关的类

Widgets包含构建界面的所有控件类

Multimedia包含提供音频、视频等功能的类

greaterThan(QT_MAJOR_VERSION,4):QT+=widgets
如果QT版本大于4,则添加widgets模块
TARGET 指定程序成功运行后生成的可执行文件的名称
TEMPLATE

指定如何运行当前程序,默认值为app,表示当前程序是一个应用程序,可以直接编译、运行

常用值还有lib,表示将当前程序编译成库文件

DEFINES 在程序中新定义一个指定的宏,如同在程序中添加#define xxx语句
SOURCES 指定项目中包含的所有.cpp源文件
HEADERS 指定项目中包含的所有.h头文件
FORMS 指定项目中包含的ui文件
INCLUDEPATH 指定头文件的存储路径
CONFIG

经常使用的值

release:以release模式编译程序

debug:以debug模式编译程序

warn_on:编译器输出尽可能多的警告

c++11:启用C++11标准支持

2.(main.cpp)主文件

复制代码
 1 #include "mywidget.h"
 2 
 3 #include <QApplication>//QApplication类的头文件
 4 
 5 //argc->argument_count,argv->argument_value
 6 int main(int argc, char *argv[])
 7 {
 8     QApplication a(argc, argv);//创建QApplication对象,每个应用程序都必须有且仅有一个此对象
 9     MyWidget w;//创建主窗口对象
10     w.show();//调用show方法,使图形对象显示在屏幕
11     return a.exec();//阻塞,进入消息循环,等待程序结束pause
12 }
复制代码

3.(.h)头文件

复制代码
 1 #ifndef MYWIDGET_H//宏定义,防止重复包含
 2 #define MYWIDGET_H
 3 
 4 #include <QWidget>
 5 
 6 class MyWidget : public QWidget//此类继承于QWidget类
 7 {
 8     Q_OBJECT//所有使用到信号的类都需要添加此宏
 9 
10 public://公共属性和方法定义/实现区
11     MyWidget(QWidget *parent = nullptr);//构造方法定义
12     ~MyWidget();//析构函数定义
13 };
14 #endif // MYWIDGET_H
复制代码

4.(.cpp)源文件

复制代码
 1 #include "mywidget.h"
 3 MyWidget::MyWidget(QWidget *parent)
 4     : QWidget(parent)//构造函数实现
 5 {
 6 }
 7 
 8 //析构函数最后执行的函数,在这里释放空间
 9 MyWidget::~MyWidget()
10 {
11 }
复制代码

5.初始化效果图(Widget类型)

 6.例子:添加一个按钮,点击此按钮后按钮消失。

复制代码
 1 #include "mywidget.h"
 2 #include <QPushButton>
 3 MyWidget::MyWidget(QWidget *parent)
 4     : QWidget(parent)//构造函数实现
 5 {
 6     QPushButton *btn=new QPushButton;//创建对象,指针类型
 7     btn->resize(200,100);//设置按钮大小
 8     this->resize(900,500);//在MyWidget类中进行设置,this表示本类,设置主窗口大小
 9     btn->setParent(this);//设置主窗口为按钮的父窗口
10     btn->show();//显示按钮组件
11     btn->move(350,200);//移动按钮
12     btn->setText("按钮");//设置按钮显示文本
13 
14     //QObject::connect(btn,&QPushButton::clicked,btn,&QPushButton::hide);
15     QObject::connect(btn,SIGNAL(clicked()),btn,SLOT(hide()));//两种方式绑定信号和槽
16 }
17 
18 //析构函数最后执行的函数,在这里释放空间
19 MyWidget::~MyWidget()
20 {
21 }
复制代码

效果展示

posted @   稚终KINO  阅读(195)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示