Создаю приложение. Пока на стадии разработки дизайна.
Уровень знания: начинающий в Qt. Изучаю по "Qt 4 программирование GUI на С++"
Дизайн создаю в коде.
Создал несколько виджетов (лэйблы, эдиты и кнопки), расположил их с помощью менеджеров компоновки. Получил шапку формы. Под это все внизу хотел вставить виджет-рамку (frame) для того, чтобы на ней потом рисовать. Осуществляю добавление рамки через менеджер компоновки (вертикальный), но рамка не появляется.
main.cpp
#include <QApplication>
#include "mainDialog.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
mainDialog *dialog = new mainDialog;
dialog->show();
return app.exec();
}
mainDialog.h
#ifndef MAINDIALOG_H // предотвращение многочисленного включения этого заголовочного файла в программу
#define MAINDIALOG_H
#include <QDialog>
class QLabel;
class QLineEdit;
class QPushButton;
class QFrame;
class mainDialog : public QDialog // определяем FindDialog как подкласс QDialog
{
Q_OBJECT // макрос, который необходимо задавать в начале определения любого класса, содержащего сигналы и слоты
public:
mainDialog(QWidget *parent = 0); // конструктор, в параметре parent указывается родительский виджет
//signals: // секция для объявления сигналов
//private slots: // секция для объявления закрытых слотов
private:
//////// Label ////////
QLabel *titleZoomLabel;
QLabel *titleTurnLabel;
QLabel *titleTransferLabel;
QLabel *centerZoomLabel;
QLabel *centerTurnLabel;
QLabel *vectorTransferLabel;
QLabel *coefficientsZoomLabel;
QLabel *angleTurnLabel;
QLabel *xCenterZoomLabel;
QLabel *yCenterZoomLabel;
QLabel *xCenterTurnLabel;
QLabel *yCenterTurnLabel;
QLabel *xVectorTransferLabel;
QLabel *yVectorTransferLabel;
QLabel *xCoefficientsZoomLabel;
QLabel *yCoefficientsZoomLabel;
//////// LineEdit ////////
QLineEdit *xCenterZoomEdit;
QLineEdit *yCenterZoomEdit;
QLineEdit *xCenterTurnEdit;
QLineEdit *yCenterTurnEdit;
QLineEdit *xVectorTransferEdit;
QLineEdit *yVectorTransferEdit;
QLineEdit *xCoefficientsZoomEdit;
QLineEdit *yCoefficientsZoomEdit;
QLineEdit *angleTurnEdit;
//////// PushButton ////////
QPushButton *enterZoomButton;
QPushButton *enterTurnButton;
QPushButton *enterTransferButton;
QPushButton *backButton;
QPushButton *againButton;
//////// Frame ////////
QFrame *paintFrame;
};
#endif
mainDialog.cpp
#include <QtGui>
#include "mainDialog.h"
mainDialog::mainDialog(QWidget *parent) : QDialog(parent) // конструктору базового класса передается указатель на родительский виджет
{
//////// new Label ////////
titleZoomLabel = new QLabel(tr("Zoom"));
titleTurnLabel = new QLabel(tr("Turn"));
titleTransferLabel = new QLabel(tr("Transfer"));
centerZoomLabel = new QLabel(tr("Center Zoom"));
centerTurnLabel = new QLabel(tr("Center Turn"));
vectorTransferLabel = new QLabel(tr("Vector Transfer"));
coefficientsZoomLabel = new QLabel(tr("Coefficients Zoom"));
angleTurnLabel = new QLabel(tr("Angle Turn"));
xCenterZoomLabel = new QLabel(tr("X:"));
yCenterZoomLabel = new QLabel(tr("Y:"));
xCenterTurnLabel = new QLabel(tr("X:"));
yCenterTurnLabel = new QLabel(tr("Y:"));
xVectorTransferLabel = new QLabel(tr("X:"));
yVectorTransferLabel = new QLabel(tr("Y:"));
xCoefficientsZoomLabel = new QLabel(tr("for X:"));
yCoefficientsZoomLabel = new QLabel(tr("for Y:"));
//////// new LineEdit ////////
xCenterZoomEdit = new QLineEdit;
yCenterZoomEdit = new QLineEdit;
xCenterTurnEdit = new QLineEdit;
yCenterTurnEdit = new QLineEdit;
xVectorTransferEdit = new QLineEdit;
yVectorTransferEdit = new QLineEdit;
xCoefficientsZoomEdit = new QLineEdit;
yCoefficientsZoomEdit = new QLineEdit;
angleTurnEdit = new QLineEdit;
//////// new PushButton ////////
enterZoomButton = new QPushButton(tr("Enter Zoom"));
enterTurnButton = new QPushButton(tr("Enter Turn"));
enterTransferButton = new QPushButton(tr("Enter Transfer"));
backButton = new QPushButton(tr("Back Image"));
againButton = new QPushButton(tr("Again Image"));
//////// new Frame ////////
paintFrame = new QFrame;
//////// new HLayout ////////
QHBoxLayout *CenterZoomLayout = new QHBoxLayout;
CenterZoomLayout->addWidget(xCenterZoomLabel);
CenterZoomLayout->addWidget(xCenterZoomEdit);
CenterZoomLayout->addWidget(yCenterZoomLabel);
CenterZoomLayout->addWidget(yCenterZoomEdit);
QHBoxLayout *CenterTurnLayout = new QHBoxLayout;
CenterTurnLayout->addWidget(xCenterTurnLabel);
CenterTurnLayout->addWidget(xCenterTurnEdit);
CenterTurnLayout->addWidget(yCenterTurnLabel);
CenterTurnLayout->addWidget(yCenterTurnEdit);
QHBoxLayout *VectorTransferLayout = new QHBoxLayout;
VectorTransferLayout->addWidget(xVectorTransferLabel);
VectorTransferLayout->addWidget(xVectorTransferEdit);
VectorTransferLayout->addWidget(yVectorTransferLabel);
VectorTransferLayout->addWidget(yVectorTransferEdit);
QHBoxLayout *CoefficientsZoomLayout = new QHBoxLayout;
CoefficientsZoomLayout->addWidget(xCoefficientsZoomLabel);
CoefficientsZoomLayout->addWidget(xCoefficientsZoomEdit);
CoefficientsZoomLayout->addWidget(yCoefficientsZoomLabel);
CoefficientsZoomLayout->addWidget(yCoefficientsZoomEdit);
//////// new VLayout ////////
QVBoxLayout *Vertical1Layout = new QVBoxLayout;
Vertical1Layout->addWidget(titleZoomLabel);
Vertical1Layout->addWidget(centerZoomLabel);
Vertical1Layout->addLayout(CenterZoomLayout);
Vertical1Layout->addWidget(coefficientsZoomLabel);
Vertical1Layout->addLayout(CoefficientsZoomLayout);
Vertical1Layout->addWidget(enterZoomButton);
QVBoxLayout *Vertical2Layout = new QVBoxLayout;
Vertical2Layout->addWidget(titleTurnLabel);
Vertical2Layout->addWidget(centerTurnLabel);
Vertical2Layout->addLayout(CenterTurnLayout);
Vertical2Layout->addWidget(angleTurnLabel);
Vertical2Layout->addWidget(angleTurnEdit);
Vertical2Layout->addWidget(enterTurnButton);
QVBoxLayout *Vertical3Layout = new QVBoxLayout;
Vertical3Layout->addWidget(titleTransferLabel);
Vertical3Layout->addWidget(vectorTransferLabel);
Vertical3Layout->addLayout(VectorTransferLayout);
Vertical3Layout->addStretch();
Vertical3Layout->addWidget(enterTransferButton);
QVBoxLayout *Vertical4Layout = new QVBoxLayout;
Vertical4Layout->addWidget(backButton);
Vertical4Layout->addWidget(againButton);
Vertical4Layout->addStretch();
//////// top HLayout ////////
QHBoxLayout *topLayout = new QHBoxLayout;
topLayout->addLayout(Vertical1Layout);
topLayout->addLayout(Vertical2Layout);
topLayout->addLayout(Vertical3Layout);
topLayout->addLayout(Vertical4Layout);
//////// main VLayout ////////
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(topLayout);
mainLayout->addWidget(paintFrame);
setLayout(mainLayout); // устанавливаем главный менеджер упаковки
}
Выглядит это так:

А рамки нет.
Возможно кто знает в чем проблема.
Заранее благодарю.