Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在Qt中动态添加选项卡?_C++_Qt_Qtabwidget - Fatal编程技术网

C++ 如何在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

我想根据用户输入在Qt应用程序中动态添加选项卡

  • 默认情况下,一个选项卡始终在那里。为了方便起见,如果我能在图形编辑器中创建此选项卡的布局和功能,那就太好了。然后我想将此布局转换为代码,放入类构造函数并添加如下选项卡:

    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。这就是我需要的解决方案!