Search code examples
c++layoutwidgetqwidgetqdockwidget

Multiple widgets on a QDockWidget


I'm making a little app for applying various filters on an image using Qt and C++.

My question is, is it possible to add multiple widgets on a QDockWidget ? As i want to add buttons for re-applying the last 5 filters on the dock.

Here is an example of what i want to achieve.

Exemple of what i want to achieve


Solution

  • It is possible add to multiple QWidgets into any QWidget. It looks like you probably want to do something like this:

    QDockWidget dock(QLatin1String("Last filters"));
    QWidget* multiWidget = new QWidget();
    QVBoxLayout* layout = new QVBoxLayout();
    QPushButton* filter1 = new QPushButton(QLatin1String("Filter number 1"));
    QPushButton* filter2 = new QPushButton(QLatin1String("Filter number 2"));
    QPushButton* filter3 = new QPushButton(QLatin1String("Filter number 3"));
    QPushButton* filter4 = new QPushButton(QLatin1String("Filter number 4"));
    QPushButton* filter5 = new QPushButton(QLatin1String("Filter number 5"));
    QLabel* label = new QLabel(QLatin1String("QPushButtons"));
    
    layout->addWidget(filter1);
    layout->addWidget(filter2);
    layout->addWidget(filter3);
    layout->addWidget(filter4);
    layout->addWidget(filter5);
    layout->addWidget(label);
    multiWidget->setLayout(layout);
    dock.setWidget(multiWidget);