PDA

View Full Version : Widgets Layout in a QToolBar.



cydside
27th June 2009, 06:32
Hi to all,
I've inserted, via code, a QLabel and QLineEdit in a QToolBar as showed in the next screenshot:

http://www.qtcentre.org/forum/attachment.php?attachmentid=3380&stc=1&d=1246076781

but I'd like to line up vertically both QLabel and QLineEdit:

http://www.qtcentre.org/forum/attachment.php?attachmentid=3381&stc=1&d=1246076844

so I've tried the following code:



void frmEntUsc::creaToolBar()
{
QLabel * lblRicerca;
lblRicerca = new QLabel();
lblRicerca->setText(QString::fromUtf8("Ricerca per Data: "));
lblRicerca->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt:: AlignVCenter);

ricData = new QDateEdit();
ricData->setMinimumSize(QSize(100, 20));
ricData->setMaximumSize(QSize(100, 20));
ricData->setWrapping(false);
ricData->setFrame(true);
ricData->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt:: AlignVCenter);
ricData->setButtonSymbols(QAbstractSpinBox::UpDownArrows);
ricData->setAccelerated(true);
ricData->setCalendarPopup(true);
ricData->setDate(QDate::currentDate());

ui.editToolBar->insertWidget(ui.action_Ricerca, lblRicerca);
ui.editToolBar->insertWidget(ui.action_Ricerca, ricData);
ui.editToolBar->insertSeparator(ui.action_Stampa);

vLayout = new QVBoxLayout();
vLayout->addWidget(lblRicerca);
vLayout->addWidget(ricData);

connect(ui.action_Ricerca, SIGNAL(triggered()),
this, SLOT(appFiltro()));

connect(ricData, SIGNAL(dateChanged(QDate)),
this, SLOT(cambioData(QDate)));
}


but nothing happened!!! :confused:
How can I line up those widgets?

faldzip
27th June 2009, 09:46
nothing happened because you did not set the layout anywhere. just create one QWidget and set the layout to it and then add that widget (which will contain your 2 widgets) to the toolbar, instead of adding your 2 widgets separately.


// remove these 2 lines
//ui.editToolBar->insertWidget(ui.action_Ricerca, lblRicerca);
//ui.editToolBar->insertWidget(ui.action_Ricerca, ricData);

. . .

QWidget *widget = new QWidget;
widget->setLayout(vLayout);
ui.editToolBar->insertWidget(ui.action_Ricerca, widget);