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基本模块
天道酬勤 循序渐进 技压群雄