QT-创建第一个QT程序

 .pro

QT        + = core gui   / / 包含的模块
greaterThan(QT_MAJOR_VERSION,  4 ): QT  + = widgets  / / 大于Qt4版本 才包含widget模块
TARGET  = QtFirst   / / 应用程序名  生成的.exe程序名称
TEMPLATE  = app     / / 模板类型    应用程序模板
SOURCES  + = main.cpp\    / / 源文件
        mywidget.cpp
HEADERS   + = mywidget.h    / / 头文件

  main.cpp

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


//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();


//    while(true)
//    {
//         if(点击叉子)
//        {
//            break;
//        }
//    }

}

 mywidget.h

#ifndef MYWIDGET_H
#define MYWIDGET_H


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

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

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

#endif // MYWIDGET_H

  mywidget.cpp 

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

//快捷键
//注释  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(50,50);

    //重置窗口大小
    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.h

#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H

#include 

class MyPushButton :  public QPushButton
{
    Q_OBJECT
public :
    explicit MyPushButton(QWidget *parent = 0);

    ~MyPushButton();

signals:

public slots:
};

#endif // MYPUSHBUTTON_H

   mypushbutton.cpp

#include "mypushbutton.h"
#include 

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

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

   QT对象树

    QT基本模块

posted @ 2022-04-06 15:10  wuyuan2011woaini  阅读(60)  评论(0编辑  收藏  举报