Несколько виджетов в QDockWidget

Я делаю небольшое приложение для применения различных фильтров к изображению с использованием Qt и C++.

Мой вопрос: можно ли добавить несколько виджетов в QDockWidget? Поскольку я хочу добавить кнопки для повторного применения последних 5 фильтров на доке.

Вот пример того, чего я хочу достичь.

Пример того, чего я хочу достичь


person IgZiStO    schedule 09.10.2014    source источник


Ответы (1)


Можно добавить несколько QWidget в любой QWidget. Похоже, вы, вероятно, хотите сделать что-то вроде этого:

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);
person Jonathan Mee    schedule 09.10.2014
comment
Можете ли вы предоставить полный код для этого примера, чтобы его можно было построить с нуля? - person Avner Moshkovitz; 16.01.2018
comment
@AvnerMoshkovitz Прости, но нет. Это противоречит намерениям и целям stackoverflow.com. Если у вас есть вопрос о том, как сделать что-то, что мне нравится помогать; просто задайте вопрос и свяжите меня с ним. Просить меня сделать что-то для тебя — это совсем другое. Это не учебный сайт и не библиотека прототипов. Это говорит о том, что я хотел бы помочь. Поэтому я предлагаю начать здесь: doc.qt.io/qt-5/qtexamplesandtutorials. html Если после попытки вы все еще боретесь с чем-то конкретным, я бы сказал, что вы готовы задать вопрос как! - person Jonathan Mee; 16.01.2018
comment
Было бы интересно узнать, можно ли добавить макет прямо в виджет дока. В этом случае multiWidget не потребуется, только layout. Кажется, это невозможно, в отличие от других производных классов Widget. - person mins; 14.06.2021