【QT开发】基本入门工程

本文介绍了Qt,一个由QtCompany开发的跨平台C++图形用户界面框架,现属于Digia公司。Qt可用于开发GUI和非GUI程序,如KDE、谷歌地图和VLC。文章详细展示了创建第一个Qt项目的步骤,包括编写`main.cpp`和`mywidget.cpp/h`,涉及窗口对象、按钮控件的创建及信号槽机制。通过实例解释了如何在Qt环境中构建和运行简单的GUI程序。
摘要由CSDN通过智能技术生成

1.简述

Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。由此开发出来的产品有Linux桌面环境 KDE、谷歌地图和VLC多媒体播放器等
在这里插入图片描述

2.基本框架

FirstProject.pro

QT       += core gui   Qt包含的模块

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets  //大于4版本以上 包含 widget模块

TARGET = 01_FirstProject  //目标   生成的.exe程序的名称
TEMPLATE = app       	  //模板   应用程序模板  Application  


SOURCES += main.cpp\      //源文件
        mywidget.cpp

HEADERS  += mywidget.h    //头文件

QT基本模块
在这里插入图片描述
QT对象树
在这里插入图片描述

3.第一个工程

main.cpp

#include "mywidget.h"
#include <QApplication>// 包含一个应用程序类的头文件


//main程序入口  argc命令行变量的数量  argv命令行变量的数组
int main(int argc, char *argv[])
{
    //a应用程序对象,在Qt中,应用程序对象 有且仅有一个
    QApplication a(argc, argv);
    //窗口对象  myWidget父类  -> QWidget
    myWidget w;
    //窗口对象 默认不会显示,必须要调用show方法显示窗口
    w.show();

    //让应用程序对象进入消息循环
    //当代码阻塞到这行
    return a.exec();
}

mywidget.h

#ifndef MYWIDGET_H
#define MYWIDGET_H


#include <QWidget> //包含头文件 QWidget 窗口类

class myWidget : public QWidget
{
    Q_OBJECT // Q_OBJECT宏,允许类中使用信号和槽的机制

public:
    myWidget(QWidget *parent = 0); //构造函数
    ~myWidget(); //析构函数
};

#endif // MYWIDGET_H

mywidget.cpp

#include "mywidget.h"
#include <QPushButton> //按钮控件的头文件
#include "mypushbutton.h"
#include <QDebug>
// 命名规范
// 类名 首字母大写,单词和单词之间首字母大写
// 函数名 变量名称 首字母小写,单词和单词之间首字母大写

//快捷键
//注释  ctrl + /
//运行  ctrl + r
//编译  ctrl + b
//字体缩放 ctrl + 鼠标滚轮
//查找  ctrl + f
//整行移动 ctrl + shift + ↑ 或者↓
//帮助文档 F1
//自动对齐  ctrl + i;
//同名之间的.h 和 .cpp切换  F4

//帮助文档 第一种方式 F1  第二种 左侧按钮  第三种 C:\Qt\Qt5.6.0\5.6\mingw49_32\bin

myWidget::myWidget(QWidget *parent)
    : QWidget(parent)
{
    //创建一个按钮
    QPushButton * btn = new QPushButton;
    //btn->show(); //show以顶层方式弹出窗口控件
    //让btn对象 依赖在 myWidget窗口中
    btn->setParent(this);

    //显示文本
    btn->setText("第一个按钮");

    //创建第二个按钮 按照控件的大小创建窗口
    QPushButton * btn2 = new QPushButton("第二个按钮",this);

    //移动btn2按钮
    btn2->move(100,100);

    //按钮可不可以 重新制定大小 可以!
    btn2->resize(250,250);

    //重置窗口大小
    resize(600,400);

    //设置固定窗口大小
    setFixedSize(600,400);

    //设置窗口标题
    setWindowTitle("第一个窗口");

    //创建一个自己的按钮对象
    MyPushButton * myBtn = new MyPushButton;
    myBtn->setText("我自己的按钮");

    myBtn->move(200,0);
    myBtn->setParent(this); //设置到对象树中

    //需求  点击我的按钮 关闭窗口
    //参数1  信号的发送者 参数2  发送的信号(函数的地址) 参数3  信号的接受者 参数4  处理的槽函数
    //connect( myBtn, &MyPushButton::clicked, this, &myWidget::close  );
    connect( myBtn, &QPushButton::clicked, this, &QWidget::close  );
}

myWidget::~myWidget()
{
    qDebug() << "myWidget的析构调用";
}

mypushbutton.cpp

#include "mypushbutton.h"
#include <QDebug>

MyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent)
{
    qDebug() << "我的按钮类构造调用";
}

MyPushButton::~MyPushButton()
{
    qDebug() << "我的按钮类析构";
}

运行显示
在这里插入图片描述

4.加入讨论

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值