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

标签 c++ qt qtabwidget

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

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

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

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

最佳答案

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

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

2) 在您的项目目录中添加一个新的“Qt Design Form Class”作为 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:我知道这个问题很老了。但我想为其他人提供一步一步的解决方案,因为我最近不得不为自己挣扎。

关于c++ - 如何在 Qt 中动态添加选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25127302/

相关文章:

C++ 动态属性

C++ 将结构成员作为参数传递

c++ - 指示方向的迷宫解算器

c++ - 隐藏 Qt 选项卡的标签文本而不将文本设置为空字符串

c++ - 用新的小部件替换 QTabWidget 的页面

python - 将滚动条添加到选项卡 PYQT5

C++:抛出派生的shared_ptr并捕获基的shared_ptr?

c++ - 类范围内的二维 vector

c++ - QDialog 基于 QLabel 内容扩展

c++ - 如何更改 QMenu 中操作的图标大小?