qt入门



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();
}

结果显示

 

你可能感兴趣的:(入门,qt,简单,控件,hellowor)