QT5之三大重要窗体

当创建项目时,会发现编辑器提供三个基类,分别为:
QMainWindow、QWidget、QDialog,三个基类的区别说明如下。
1、QMainWindow
QMainWindow类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用
程序窗口。主窗口通常用在提供一个大的中央窗口部件(例如文本编辑或者绘制画布)以及
周 围 菜单、工具条和一个状态条。QMainWindow常常被继承,因为这使得封装中央部件、菜
单和工具条以及窗口状态条变得更容易,当用户点击菜单项或者工 具条按钮时,槽会被调
用。
2、QWidget
QWidgt类是所有用户界面对象的基类。 窗口部件是用户界面的一个基本单元:它从窗
口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己。每一个窗口部件都是矩形的,
并且它们按Z轴顺序排列。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住
一部分。
3、QDialog
QDialog类是对话框窗口的基类。对话框窗口是主要用于短期任务以及和用户进行简要
通讯的顶级窗口。QDialog可以是模态对话框也可以是非模态对话框。QDialog支持扩展性并
且可以提供返回值。它们可以有默认按钮。

当然也可以在主函数中加入新的基类对象

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QWidget*window=new QWidget;
    window->setWindowTitle("输入你的年龄");
    QSpinBox *spinBox=new QSpinBox;
    QSlider *slider = new QSlider(Qt::Horizontal);
    spinBox->setRange(0,130);
    slider->setRange(0,130);
    QObject::connect(slider,SIGNAL(valueChanged(int)),spinBox,SLOT(setValue(int)));
    QObject::connect(spinBox,SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));
    spinBox->setValue(25);
    QHBoxLayout*layout=new QHBoxLayout;//水平布局,接下来四行是放置
    //QHBoxLayout- 按照水平方向从左到右布局;
    //QVBoxLayout- 按照竖直方向从上到下布局;
    //QGridLayout- 在一个网格中进行布局,类似于 HTML 的 table。
    layout->addWidget(spinBox);
    layout->addWidget(slider);
    window->setLayout(layout);
    window->show();
    return app.exec();
}

  

原文地址:https://www.cnblogs.com/BetterThanEver_Victor/p/5856970.html