Как динамически регулировать вертикальное пространство между двумя QTableViews в QVBoxLayout? ⇐ C++

Программы на C++. Форум разработчиков
Anonymous
Как динамически регулировать вертикальное пространство между двумя QTableViews в QVBoxLayout?

Сообщение Anonymous »

Я работаю над приложением Qt, в котором у меня есть два виджета QTableView (tableAView и tableBView), помещенные внутри QVBoxLayout. В каждой таблице можно динамически менять количество строк (с помощью QAbstractTableModel), и их содержимое всегда разное. Иногда таблицы могут вообще не иметь содержимого. Однако я столкнулся с проблемой: если tableAView уменьшает количество строк (уменьшается вертикальный размер), вертикальное пространство между tableAView и tableBView не изменяется соответствующим образом. Кажется, что он остается статичным, оставляя большой нежелательный пробел.
Вот упрощенная версия моей настройки:

Код: Выделить всё

QVBoxLayout *layout = new QVBoxLayout(this);
this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
QWidget *header = new QWidget(this);
QWidget *options = new OptionsWidget(this);
QWidget *textWidget = new TextWidget(this);

QTableView *tableAView = new QTableView;
QTableView *tableBView = new QTableView;

tableAView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
tableBView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

layout->setContentsMargins(0, 0, 0, 0);
layout->addWidget(header);
layout->addWidget(options);
layout->addWidget(tableAView);
layout->addWidget(tableBView);
layout->addWidget(textWidget);
Я пробовал устанавливать разные политики размера, но мне не удалось заставить макет динамически регулировать пространство между таблицами в зависимости от их содержимого.
Кто-нибудь сталкивался с подобной проблемой или у вас есть какие-либо предложения о том, как динамически регулировать вертикальное пространство между таблицами?
Заранее спасибо!>

Подробнее здесь: https://stackoverflow.com/questions/790 ... n-a-qvboxl

Вернуться в «C++»