Как динамически регулировать вертикальное пространство между двумя 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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