我正在尝试动态添加spinbox,但我需要它们在我在设计器中创建的不同选项卡上。我可以将它们添加到选项卡而不是主窗口吗?
QSpinBox *spin[10];
for (int i=0; i < 10; i++)
{
spin[i] = new QSpinBox(this);
spin[i]->setValue(i);
spin[i]->setGeometry(QRect(QPoint(100,100),QSize(50,50))); //todo: change position
spin[i]->show();
}
答案 0 :(得分:2)
创建this
时,请使用该标签作为父级。
在您的示例中,您使用的是QTabWidget
,我将假设它是您在设计师中设计的小部件。
例如,如果您在设计器中有一个空小部件并将QTabWidget
拖到其上,则会创建一个名为tabWidget
的{{1}}。默认情况下,它有两个名为QWidget
和tab
的标签(tab_2
s)。此外,默认情况下,设计人员在您的类中创建一个名为ui
的成员变量,该变量代表您的小部件。
因此,要在选项卡中添加QSpinBox,请在代码中执行以下操作:
QSpinBox* spinBox = new QSpinBox(ui->tab);
这已将旋转框的父级设置为ui->tab
而不是this
。