通过单击QTabWidget外部的按钮,将每个选项卡(QTabWidget)中的数组保存到QTabWidget外部的2D数组中

时间:2013-08-01 19:41:34

标签: qt qtabwidget

在我的QTabWidget的每个标签中,我有一个数组。对于每个选项卡,我定义了一个名为“TabView”的类,其中包含此数组和一个QGraphicsScene,用于在其上绘制线条和其他一些元素。当我打开一个新选项卡时,我通过类TabView这样做:

void MainWindow::on_actionOpen_triggered(){
    QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), QDir::currentPath());
    if (!fileName.isEmpty()) {

    tabView = new TabView(fileName);

    ui->tabWidget->addTab(tabView,"someTab");

    QFileInfo fileInfo = fileName;
    ui->tabWidget->setTabText(ui->tabWidget->count()-1,fileInfo.baseName());

    ui->tabWidget->setCurrentIndex(ui->tabWidget->count()-1);
}

在 QTabWidget之外有一个按钮。我想通过单击此按钮将每个数组存储在2D数组中的每个选项卡上。 但我只是访问最后打开的标签数组。

tabsArray[index] = tabView->getArray();

我需要这样的东西:

tabWidget->tab(index)->getArray()

任何想法都非常感激。谢谢。

1 个答案:

答案 0 :(得分:1)

使用QTabView::currentWidget()获取您的有效标签。将其转换为TabView,然后使用getArray()函数访问该数组。像这样:

TabView *active_tab = qobject_cast<TabView*>(ui->tabWidget->currentWidget());
if(active_tab)
    tabsArray[index] = active_tab->getArray();