QT包含的模块
QT += core gui
大于4版本以上 包含widget模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++17
目标:生成的.exe程序的名称
TARGET = 01_FirstProject
模板:应用程序模板 application
TEMPLATE = app
源文件
SOURCES += \
main.cpp \
mypushbutton.cpp \
mywidget.cpp
头文件
HEADERS += \
mypushbutton.h \
mywidget.h
**
头文件
**
mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget> //包含头文件 QWidget 窗口类
class myWidget : public QWidget
{
Q_OBJECT //Q_OBJECT宏,允许类中使用信号和槽的机制
public:
myWidget(QWidget *parent = nullptr);//构造函数
~myWidget();//析构函数
};
#endif // MYWIDGET_H
mypushbutton.h
#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H
#include <QPushButton>
class MyPushButton : public QPushButton
{
Q_OBJECT
public:
explicit MyPushButton(QPushButton *parent = nullptr);
//MyPushButton();
~MyPushButton();
signals:
};
#endif // MYPUSHBUTTON_H
源文件
main.cpp
#include "widget.h"
#include <QApplication>//包含一个应用程序类的头文件
//main程序入口 argc命令行变量的数量 argv命令行变量的数组
int main(int argc, char *argv[])
{
QApplication a(argc, argv);//a应用程序对象,在qt中,应用程序对象有且仅有一个
mtWidget w;//窗口对象 myWidget父类 -> QWidget
w.show();//窗口对象默认不会显示,必须要调用show方法显示窗口
return a.exec();//让程序对象进入消息循环
}
命名规范
类名:首字母大写,单词和单词之间首字母大写
函数名 :变量名称 首字母小写,单词和单词之间首字母大写
快捷键
注释 ctr+/
运行 ctr+r
编译 ctr+b
字体缩放 ctr+
滚轮 查找 ctr +f
整行移动 ctr+shift+↑ 或者 ↓
帮助文档 F1
自动对齐 ctr+i
同名之间 .h和 .cpp切换 F4
myWidget.cpp
#include "mywidget.h"
#include <QPushButton> //按钮控件的头文件
#include "mypushbutton.h"//在myWiget调用mypushbutton,先声明头文件
#include <QDebug>
myWidget::myWidget(QWidget *parent): QWidget(parent){
//创建一个按钮
QPushButton * btn = new QPushButton;
//show以顶层方式弹出窗口控件
btn->show();
// 让btn对象 依赖在myWidget窗口中
btn->setParent(this);//设置到对象树中
//显示文本
btn->setText("first button");
//创建第二个按钮
QPushButton * btn2 = new QPushButton("second button",this);
//移动btn2按钮
btn2->move(100,0);
//按钮指定大小
btn2->resize(100,100);
//重置窗口大小
resize(600,400);
//设置固定的窗口大小
setFixedSize(600,400);
//设置窗口标题
setWindowTitle("one window");
//创建一个自己的按钮对象
MyPushButton * myBtn = new MyPushButton;
myBtn->setParent(this);
myBtn->setText("my");
myBtn->move(200,0);
//需求 点击我的按钮 关闭窗口
//参数1:信号的发送者 参数2:发送的信号(函数的地址) 参数3:信号的接受者 参数4:处理的槽函数
connect( myBtn, &MyPushButton::clicked, this, &myWidget::close);
}
myWidget::~myWidget()
{
qDebug() << "myWidget析构调用";
}