[Solved]Placing Widgets in the MainWindow
-
Hello Everyone,
I am Qt-bigginer and am writting an application that consists of QMenuBar,QToolBar, MainWindow and QStatusBar.
I am trying to set 2 Widgets in the center of main window.
Right down the toolbar a QWidget that consists of lable, button and combobox and down to it, a table that the values have to be changed by clicking on the button at the QWidget.
I have got a problem to place my widgets right down the QToolbar. In centralWidget, the lable,comboBox...will be shown in the middel of the window. Here is part of my code:@
QWidget* centralWidget = new QWidget;
QHBoxLayout* layout = new QHBoxLayout;
QLabel* tool1 = new QLabel(tr("Tool1: "));
QComboBox* combo_tool1 = new QComboBox();
combo_tool1->addItem(tr("Select the tool"));
combo_tool1->setEnabled(true);layout->addWidget(tool1); layout->addWidget(combo_tool1); centralWidget->setLayout(layout); setCentralWidget(centralWidget);
@
How am I supposed to fix it. :(
Thank you
-
There are basically two options:
- pass an "alignment":http://developer.qt.nokia.com/doc/qt-4.8/qt.html#AlignmentFlag-enum to QLayout::addWidget() or
@
layout->addWidget(tool1, 0, Qt::AlignTop);
layout->addWidget(combo_tool1, 0, Qt::AlignTop);
@ - use another QVBoxLayout and a stretch to place it on top. This is particularly useful if you want to add other widgets below. In addition, a stretch can be used to glue the combo box to the label.
@
layout->addWidget(tool1);
layout->addWidget(combo_tool1);
layout->addStretch();
QVBoxLayout* centralLayout = new QVBoxLayout;
centralLayout->addLayout(layout);
centralLayout->addStretch();centralWidget->setLayout(centralLayout);
@ - pass an "alignment":http://developer.qt.nokia.com/doc/qt-4.8/qt.html#AlignmentFlag-enum to QLayout::addWidget() or