qt入门
1.首先我们先创建一个qt的空项目
1.这会生成两个文件
xx.pro
xx.pro.user
xx.pro文件是qt的工程文件,有点类似于vc的prj文件,或者sln文件。xx.pro.user是这个当前环境下的工程文件。(移植的时候这个文件没啥用)
以下是标准的hello world入门程序
#include <QApplication> #include <QWidget> int main(int argc,char* argv[]) { QApplication app(argc,argv); QWidget w; w.setWindowTitle("hello world"); w.show(); return app.exec(); }
然后在xx.pro那里加上QT += widgets gui
代码解释
1.QApplication是应用程序抽象类,而QWidget是窗口抽象类。
2.app.exec();中有一个消息循环。
下一步:向这个窗口中导入一个按钮
先引入头文件:
#include<QPushButton>
然后在w.show();前加入代码
QPushButton button;
button.setText("button");
button.setParent(&w);
那个w是button的父对象,而不是父类
按钮和其它的控件都是窗口,继承至QWidget。
然后窗口对象的父子关系,影响着显示。
下一步:给按钮添加响应
QObject::connect(&button,SIGNAL(clicked(bool)),&w,SLOT(close()));
其中第一个参数(这里是button),必须是QObject类,然后第二个参数和第四个参数是char*,通过SIGNAL(信号),SLOT(槽)这两个宏定义把clicked,以及close()装换成char*.
全部代码
/* 应用程序抽象类 */ #include <QApplication> /*窗口类*/ #include <QWidget> /* 按钮 */ #include <QPushButton> int main(int argc, char* argv[]) { QApplication app(argc, argv); /* 构造一个窗口*/ QWidget w; /*显示窗口*/ w.show(); /* 按钮也是个窗口 */ QPushButton button; button.setText("Button"); /* 窗口对象的父子关系,影响显示位置 */ /* 没有父窗口的窗口,我们称之为主窗口 */ button.setParent(&w); button.show(); /* QT对C++的拓展 */ // std::bind std::function QObject::connect(&button, SIGNAL(clicked()), &w, SLOT(close())); w.setWindowTitle("Hello World"); /*在exec中有一个消息循环*/ return app.exec(); }
结果显示