Currently, I am learning C++ GUI--Qt and I am confused about the header files.
For example, I want to use QHBoxLayout in my constructor function to manage layout.
QHBoxLayout and QVBoxLayout inherit from  QBoxLayout.Hence, QBoxLayout header file should not contain definition about  QHBoxLayout or QVBoxLayout.But it works fine unexpectedly.
So I guess it may be one feature of Qt or does it works for native C++ Language?
#include "dialog.h"
#include <QBoxLayout>
Dialog::Dialog(int tempCelsius, QWidget *parent)
    : QDialog(parent)
{   
    QHBoxLayout *mainLayout = new QHBoxLayout();
    QVBoxLayout *leftLayout = new QVBoxLayout();
    QVBoxLayout *rightLayout = new QVBoxLayout();
    celsiusGroupBox = new QGroupBox(this);
    fahrenheitGroupBox = new QGroupBox(this);
    celsiusDia = new QDial(celsiusGroupBox);
    fahrenheitDia = new QDial(fahrenheitGroupBox);
    celsiusLDNumber = new QLCDNumber(celsiusGroupBox);
    fahrenheitLDNumber = new QLCDNumber(fahrenheitGroupBox);
    celsiusGroupBox->setTitle("Celsius");
    fahrenheitGroupBox->setTitle("Fahrenheit");
    leftLayout->addWidget(celsiusDia);
    leftLayout->addWidget(celsiusLDNumber);
    celsiusGroupBox->setLayout(leftLayout);
    rightLayout->addWidget(fahrenheitDia);
    rightLayout->addWidget(fahrenheitLDNumber);
    fahrenheitGroupBox->setLayout(rightLayout);
    celsiusGroupBox->setLayout(leftLayout);
    mainLayout->addWidget(celsiusGroupBox);
    mainLayout->addWidget(fahrenheitGroupBox);
    setLayout(mainLayout);
}
 
     
    