У меня есть тестовый случай:QTabWidget не учитывает расстояние от расположения
// Scroll
QScrollArea *sa = new QScrollArea(ui->centralWidget);
sa->setWidgetResizable(true);
// Layout for widgets
QVBoxLayout *vl_2 = new QVBoxLayout();
vl_2->setSpacing(0);
// Widget to attach the scroll to and the layout
QWidget *widget = new QWidget()
widget->setLayout(vl_2);
sa->setWidget(widget);
// Test widgets
QComboBox *cb_1 = new QComboBox();
QComboBox *cb_2 = new QComboBox();
vl_2->addWidget(cb_1);
vl_2->addWidget(cb_2);
И виджеты имеют 0 пространство между ними.
Но если я добавлю их в QTabWdiget
, все это сломается, как будто QTabWidget
не уважает комплект setSpacing(0);
.
// TabWidget
QTabWidget *run_results = new QTabWidget(ui->centralWidget);
run_results->resize(this->size().width() -20, this->size().height() -80);
run_results->show();
// Scroll
QScrollArea *sa = new QScrollArea(ui->centralWidget);
sa->setWidgetResizable(true);
// Layout for widgets
QVBoxLayout *vl_2 = new QVBoxLayout();
vl_2->setSpacing(0);
// Widget to attach the scroll to and the layout
QWidget *widget = new QWidget()
widget->setLayout(vl_2);
sa->setWidget(widget);
// Add the scroll to as the TabWidget tab.
run_results->addTab(sa, "test");
// Test widgets
QComboBox *cb_1 = new QComboBox();
QComboBox *cb_2 = new QComboBox();
vl_2->addWidget(cb_1);
vl_2->addWidget(cb_2);
Каждый знает, что мне нужно сделать, чтобы заставить QTabWidget
не изменять размеры и перемещать свои виджеты так, что они занимают все пространство?
Я попытался добавить Qt::AlignTop
в addWdiget
, но он не сделал ничего, кроме размещения первого виджета наверху и следующего в середине экрана.