阻止 QWidgets 动态堆叠
Stop QWidgets from stacking on top of each other dynamically
我用代码创建我所有的 QWidget
并将它们放在一个选项卡中。然而,所有的小部件都堆叠在一起。有没有办法动态移动小部件?可以将小部件动态移动到小部件中已有的数量吗?
众所周知,我必须使用 move()
移动它们,这可能很难跟踪更多添加对象。
QTabWidget* MainWindow::CreateTabWidget(){
QTabWidget* tabWidget = new QTabWidget(ui->centralWidget);
tabWidget->setFixedSize(this->size().width(),this->size().height()- 40);
QWidget* tab = new QWidget();
QLabel* label = new QLabel("Sektionnamn",tab);
QLineEdit* line = new QLineEdit(tab);
line->move(0,20);
tabWidget->addTab(tab,"Tab 1");
return tabWidget;
}
使用 QLayout:
QLabel* label = new QLabel("Sektionnamn");
QLineEdit* line = new QLineEdit();
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(label);
layout->addWidget(line);
tab->setLayout(layout);
我用代码创建我所有的 QWidget
并将它们放在一个选项卡中。然而,所有的小部件都堆叠在一起。有没有办法动态移动小部件?可以将小部件动态移动到小部件中已有的数量吗?
众所周知,我必须使用 move()
移动它们,这可能很难跟踪更多添加对象。
QTabWidget* MainWindow::CreateTabWidget(){
QTabWidget* tabWidget = new QTabWidget(ui->centralWidget);
tabWidget->setFixedSize(this->size().width(),this->size().height()- 40);
QWidget* tab = new QWidget();
QLabel* label = new QLabel("Sektionnamn",tab);
QLineEdit* line = new QLineEdit(tab);
line->move(0,20);
tabWidget->addTab(tab,"Tab 1");
return tabWidget;
}
使用 QLayout:
QLabel* label = new QLabel("Sektionnamn");
QLineEdit* line = new QLineEdit();
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(label);
layout->addWidget(line);
tab->setLayout(layout);