【QT】2_3_2_Qt标准程序结构分析

作者:永恒0852永恒0852发布时间:2017-11-13 21:28
1.创建新项目
        1)New Project:项目选择Application--->Qt Widgets Application
                1.png
        2)Qt Widgets Application:项目介绍和位置,注意不能有英文即可。
                2.png
        3)选择默认的编译器
                3.png
        4)Qt Widgets Application:类信息:类名:MyWidget,基类选择QWidegt,下方的创建界面,不要勾(暂时不需要)
                4.png
        5)Qt Widgets Application:项目管理,直接点击完成。
                5.png
2.代码的方式增加按钮
        1)增加按钮之前,需要在头文件mywidget.h包含头文件及定义按钮。
                6.png
        2)按钮定义完后,在对应的cpp代码中实现功能。
                7.png
        3)运行程序:
                8.png
 3.总结:
        1)由此可见,界面ui文件并不是必须的,他只是为我们提供了一种更便捷创建界面的方式,在实际操作中,以很大一部分内容我们都会通过代码的方式去实现。
        2)main.cpp内创建MyWidget的对象
        3)mywidget.h内声名函数、变量及其它的类的对象或对象指针
        4)mywidget.cpp 内进行函数实现、创建对象
        5)所有窗口及窗口控件都是从QWidget直接或间接派生出来的

4.代码:

        1)03_testQt.pro

QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = 03_testQt
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS

SOURCES += \
main.cpp \
mywidget.cpp
HEADERS += \
mywidget.h

        2)mywidget.h

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget>
#include <QPushButton> //按钮头文件

class MyWidget : public QWidget
{
Q_OBJECT

public:
MyWidget(QWidget *parent = 0);
~MyWidget();

private: //定义两个按钮(私有)
QPushButton button;
QPushButton *p;
};

#endif // MYWIDGET_H

        3)main.cpp

#include "mywidget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWidget w;
w.show();

return a.exec();
}

        4)mywidget.cpp

#include "mywidget.h"

MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
button.setText("@_@"); //设置按钮显示文本
button.setParent(this); //指定父对象

p= new QPushButton("@_^",this); //调用构造函数完成初始化工作。
p->move(100,100); //移动位置,否则两个按钮会重合

}

MyWidget::~MyWidget()
{

}

5.完整的代码(注意解压后不能有中文路径)



/*************************************************************
*   温馨提示:
*            为了不影响文章的可读性,本站图片均不自动加水印。
*            除非注明,文章均由"永恒0852"整理发布,欢迎转载。
*            否则转载请注明本文地址:http://www.yongheng0852.com/qt/41.html
**************************************************************/

评论