C++ 如何在Qt中动态添加选项卡?
我想根据用户输入在Qt应用程序中动态添加选项卡C++ 如何在Qt中动态添加选项卡?,c++,qt,qtabwidget,C++,Qt,Qtabwidget,我想根据用户输入在Qt应用程序中动态添加选项卡 默认情况下,一个选项卡始终在那里。为了方便起见,如果我能在图形编辑器中创建此选项卡的布局和功能,那就太好了。然后我想将此布局转换为代码,放入类构造函数并添加如下选项卡: ui->tabWidget->addTab(新的myTabClass(),“Tab 2”) 我想推广这个标签的程序以及。可能吗 您可以通过int-QTabWidget::insertTab(int-index,QWidget*page,const-QIcon&icon,cons
ui->tabWidget->addTab(新的myTabClass(),“Tab 2”)代码>
您可以通过
int-QTabWidget::insertTab(int-index,QWidget*page,const-QIcon&icon,const-QString&label)
插入制表符,将具有给定标签、页面和图标的制表符插入到指定索引处的制表符小部件中:
ui->tabWidget->insertTab(1,new myTabClass(),QIcon(QString(":/SomeIcon.ico")),"TabText");
删除选项卡也是通过
QTabWidget::removeTab(int-index)
来完成的。要动态添加选项卡并由类构造,可以使用附加的.ui文件。通过这种方式,您可以使用Qt Designer GUI完成所有布局工作
1) 在mainwindow.ui中创建一个空选项卡小部件。(例如,命名为myTabWidget)
2) 将一个新的“Qt设计表单类”添加到项目目录中,作为QWidget类,而不是QTabWidget(例如名为MyTabPage):
右键单击项目->添加新->Qt->Qt设计表单类
3) 在mytabpage.ui中,您可以根据需要将设计插入myTabWidget
4) 下一步,您可以在MainWindow构造函数或其他地方实例化MyTabPage,并将其添加到myTabWidget。myTabWidget中的空选项卡可以在之前删除。要从myNewTab访问参数,需要在MyTabPage中声明一个函数
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
MyTabPage *myNewTab = new MyTabPage;
ui-> myTabWidget ->removeTab(0);
ui-> myTabWidget ->addTab(myNewTab, tr("name"))
myNewTab->functionDeclaredInMyTabPage (); //access parameters of myNewTab
}
PS:我知道这个问题很老了。但我想为其他人提供一个逐步解决方案,因为我最近不得不为自己奋斗。听起来你想在QT Designer中设计一个定制的QWidget,它可能会分配给每个选项卡(即-myTabClass是你的定制QWidget)。在我的选项卡中,我想包括自定义小部件QCustomPlot。这一个用于将QWidget升级为QCustomPlot。它在GUI编辑器中工作,但我真的不知道如何在代码中工作。这是一个很好的答案。但它确实在旧选项卡的位置设置了新选项卡。我的意思是标签被添加了,但不知怎么的,它们被新标签覆盖了!!对于这个答案,我需要知道如何使用designer。这就是我需要的解决方案!