如何在 Qt 中动态添加选项卡?

use*_*215 4 c++ qt qtabwidget

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

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

    ui->tabWidget->addTab(new myTabClass(), "Tab 2");

  2. 我也想以编程方式推广此选项卡。那可能吗?

小智 6

要动态添加选项卡并由类构造,您可以使用附加的 .ui 文件。这样您就可以使用 Qt Designer GUI 完成所有布局工作。

\n\n

1) 在 mainwindow.ui 中创建一个空选项卡小部件。(例如,命名为 myTabWidget)

\n\n

2) 在项目目录中添加一个新的 \xe2\x80\x9cQt Design Form Class\xe2\x80\x9d 作为 QWidget 类,而不是 QTabWidget(例如,名为 MyTabPage):

\n\n

右键项目 -> 添加新 -> Qt -> Qt Design Form Class

\n\n

3) 在 mytabpage.ui 中,您可以根据需要将其插入到 myTabWidget 中进行设计。

\n\n

4)下一步您可以在MainWindow构造函数或其他地方实例化MyTabPage并将其添加到myTabWidget。myTabWidget 中的空选项卡之前可以删除。要访问 myNewTab 中的参数,您需要在 MyTabPage 中声明一个函数。

\n\n
MainWindow::MainWindow(QWidget *parent) :\n    QMainWindow(parent),\n    ui(new Ui::MainWindow)\n{\n    ui->setupUi(this);\n    MyTabPage *myNewTab = new MyTabPage;\n    ui-> myTabWidget ->removeTab(0);\n    ui-> myTabWidget ->addTab(myNewTab, tr("name"))\n    myNewTab->functionDeclaredInMyTabPage (); //access parameters of myNewTab\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

PS:我知道这个问题已经很老了。但我想为其他人提供一步一步的解决方案,因为我最近不得不为自己奋斗。

\n