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