我想根据用户输入在 Qt 应用程序中动态添加选项卡。
默认情况下,一个选项卡始终存在。为了方便起见,如果我可以在图形编辑器中创建此选项卡的布局和功能,那就太好了。然后我想将此布局转换为代码,放入类构造函数并添加选项卡,如:
ui->tabWidget->addTab(new myTabClass(), "Tab 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/