1主窗口创建
1.1【makefile】配置
1 源码
QT += widgetsSOURCES += main.cpp
2 图示
1.2源码
1 源码
#include <QWidget>
#include <QApplication>using namespace std;int main(int argc,char *argv[])
{QApplication a(argc,argv);QWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:* (1)含义: Qt应用程序类* (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础* (3)成员函数-处理应用程序全局事件:* 1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。* 2)【quit();】: 退出应用程序。* 2 【QWidget】类:* (1)含义: 基础窗口组件类,是窗口类的基类。* (2)作用: 创建界面* (3)继承关系:* 1)父类:【QObject】+【QPaintDevice】* 2)子类:【QMainWindow】【QDialog】* (4)成员函数-:* 1)【show();】: 显示窗口对象。*/
2 图示
1.3程序执行结果
2添加控件1
2.1源码
1 源码
#include <QWidget>
#include <QApplication>
#include <QPushButton>using namespace std;class MyWidget : public QWidget
{
public:MyWidget(){btn1.show();}private:QPushButton btn1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:* (1)含义: Qt应用程序类* (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础* (3)成员函数-处理应用程序全局事件:* 1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。* 2)【quit();】: 退出应用程序。* 2 【QWidget】类:* (1)含义: 基础窗口组件类,是窗口类的基类。* (2)作用: 创建界面* (3)继承关系:* 1)父类:【QObject】+【QPaintDevice】* 2)子类:【QMainWindow】【QDialog】* (4)成员函数-:* 1)【show();】: 显示窗口对象。*/
2 图示
2.2程序执行结果
主窗口+按钮
3建立父子关系1
建立主窗口与控件1的父子关系
3.1源码
1 源码
#include <QWidget>
#include <QApplication>
#include <QPushButton>using namespace std;class MyWidget : public QWidget
{
public:MyWidget():btn1(this){}private:QPushButton btn1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:* (1)含义: Qt应用程序类* (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础* (3)成员函数-处理应用程序全局事件:* 1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。* 2)【quit();】: 退出应用程序。* 2 【QWidget】类:* (1)含义: 基础窗口组件类,是窗口类的基类。* (2)作用: 创建界面* (3)继承关系:* 1)父类:【QObject】+【QPaintDevice】* 2)子类:【QMainWindow】【QDialog】* (4)成员函数-:* 1)【show();】: 显示窗口对象。*/
2 图示
3.2程序执行结果
控件1与主窗口建立关系
4移动控件1
4.1源码
1 源码
#include <QWidget>
#include <QApplication>
#include <QPushButton>using namespace std;class MyWidget : public QWidget
{
public:MyWidget():btn1(this){btn1.move(100,300);}private:QPushButton btn1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:* (1)含义: Qt应用程序类* (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础* (3)成员函数-处理应用程序全局事件:* 1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。* 2)【quit();】: 退出应用程序。* 2 【QWidget】类:* (1)含义: 基础窗口组件类,是窗口类的基类。* (2)作用: 创建界面* (3)继承关系:* 1)父类:【QObject】+【QPaintDevice】* 2)子类:【QMainWindow】【QDialog】* (4)成员函数-:* 1)【show();】: 显示窗口对象。*/
2 图示
4.2程序执行结果
5控件1添加文本
5.1源码
1 源码
#include <QWidget>
#include <QApplication>
#include <QPushButton>using namespace std;class MyWidget : public QWidget
{
public:MyWidget():btn1("hello",this){btn1.move(100,300);this->resize(300,400);//设置主窗口大小}private:QPushButton btn1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:* (1)含义: Qt应用程序类* (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础* (3)成员函数-处理应用程序全局事件:* 1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。* 2)【quit();】: 退出应用程序。* 2 【QWidget】类:* (1)含义: 基础窗口组件类,是窗口类的基类。* (2)作用: 创建界面* (3)继承关系:* 1)父类:【QObject】+【QPaintDevice】* 2)子类:【QMainWindow】【QDialog】* (4)成员函数-:* 1)【show();】: 显示窗口对象。*/
2 图示
5.2程序执行结果
6添加控件2
6.1源码
1 源码
#include <QWidget>
#include <QApplication>
#include <QPushButton>
#include <QLineEdit>using namespace std;class MyWidget : public QWidget
{
public:MyWidget():btn1(new QPushButton("hello",this)),lineEdit1(new QLineEdit(this)){btn1->move(100,300);lineEdit1->move(200,300);this->resize(300,400);//设置主窗口大小}private:QPushButton *btn1;QLineEdit *lineEdit1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:* (1)含义: Qt应用程序类* (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础* (3)成员函数-处理应用程序全局事件:* 1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。* 2)【quit();】: 退出应用程序。* 2 【QWidget】类:* (1)含义: 基础窗口组件类,是窗口类的基类。* (2)作用: 创建界面* (3)继承关系:* 1)父类:【QObject】+【QPaintDevice】* 2)子类:【QMainWindow】【QDialog】* (4)成员函数-:* 1)【show();】: 显示窗口对象。*/
2 图示
6.2程序执行结果
7布局管理器
7.1源码
1 源码
#include <QWidget>
#include <QApplication>
#include <QPushButton>
#include <QLineEdit>
#include <QHBoxLayout>using namespace std;class MyWidget : public QWidget
{
public:MyWidget():btn1(new QPushButton("hello",this)),lineEdit1(new QLineEdit(this)){/* 1.1 创建水平布局管理器*/QHBoxLayout *hlayout1=new QHBoxLayout;/* 1.2 利用水平布局管理器管理窗口控件*/hlayout1->addWidget(btn1);hlayout1->addWidget(lineEdit1);/*创建垂直布局管理器*/QVBoxLayout *vlayout=new QVBoxLayout;/*利用垂直布局管理器管理窗口控件*/vlayout->addLayout(hlayout1);/* 1.3 设置布局管理器*/this->setLayout(vlayout);this->resize(300,400);//设置主窗口大小}private:QPushButton *btn1;QLineEdit *lineEdit1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:* (1)含义: Qt应用程序类* (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础* (3)成员函数-处理应用程序全局事件:* 1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。* 2)【quit();】: 退出应用程序。* 2 【QWidget】类:* (1)含义: 基础窗口组件类,是窗口类的基类。* (2)作用: 创建界面* (3)继承关系:* 1)父类:【QObject】+【QPaintDevice】* 2)子类:【QMainWindow】【QDialog】* (4)成员函数-:* 1)【show();】: 显示窗口对象。*/
源码封装
#include <QWidget>
#include <QApplication>
#include <QPushButton>
#include <QLineEdit>
#include <QHBoxLayout>using namespace std;class MyWidget : public QWidget
{
public:MyWidget():btn1(new QPushButton("hello",this)),lineEdit1(new QLineEdit(this)){setupUi();}void setupUi(){/* 1.1 创建水平布局管理器*/QHBoxLayout *hlayout1=new QHBoxLayout;/* 1.2 利用水平布局管理器管理窗口控件*/hlayout1->addWidget(btn1);hlayout1->addWidget(lineEdit1);/*创建垂直布局管理器*/QVBoxLayout *vlayout=new QVBoxLayout;/*利用垂直布局管理器管理窗口控件*/vlayout->addLayout(hlayout1);/* 1.3 设置布局管理器*/this->setLayout(vlayout);this->resize(300,400);//设置主窗口大小}private:QPushButton *btn1;QLineEdit *lineEdit1;
};int main(int argc,char *argv[])
{QApplication a(argc,argv);MyWidget w;w.show();return a.exec();
}
/* 1 【QApplication】类:* (1)含义: Qt应用程序类* (2)作用: 提供了管理应用程序的框架、事件循环和系统级配置的基础* (3)成员函数-处理应用程序全局事件:* 1)【exec();】: 启动一个基础的应用程序框架,用于管理应用程序生命周期和其与用户交互的方式。* 2)【quit();】: 退出应用程序。* 2 【QWidget】类:* (1)含义: 基础窗口组件类,是窗口类的基类。* (2)作用: 创建界面* (3)继承关系:* 1)父类:【QObject】+【QPaintDevice】* 2)子类:【QMainWindow】【QDialog】* (4)成员函数-:* 1)【show();】: 显示窗口对象。*/
2 图示