• 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基本模块

  • 相关阅读:
    [git] git 的基本认知
    [Java] Java IO Files
    [Java] Java IO 概况
    [Java] JavaMail 发送带图片的 html 格式的邮件
    [Java] HashMap 导致的高 CPU 使用率
    [Struts] Hello World Demo
    [Hibernate] 注解映射例子
    [Hibernate] List 映射例子
    cmd的xcopy命令
    wpf custom control
  • 原文地址:https://www.cnblogs.com/wuyuan2011woaini/p/16106532.html
Copyright © 2020-2023  润新知