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

天道酬勤 循序渐进 技压群雄
浙公网安备 33010602011771号