在我的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()
任何想法都非常感激。谢谢。
答案 0 :(得分:1)
使用QTabView::currentWidget()
获取您的有效标签。将其转换为TabView
,然后使用getArray()
函数访问该数组。像这样:
TabView *active_tab = qobject_cast<TabView*>(ui->tabWidget->currentWidget());
if(active_tab)
tabsArray[index] = active_tab->getArray();