2013-08-01 76 views
1

以外在我QTabWidget每個選項卡,我有一個數組。對於每個選項卡,我定義了一個名爲「TabView」的類,該類包含此數組和一個QGraphicsScene,以在其上繪製線條和其他元素。當我打開一個新標籤我這樣做是通過我的課TabView的是這樣的:保存在每個凸片(QTabWidget)至QTabWidget以外的2D陣列通過點擊一個按鈕陣列QTabWidget

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的按鈕之外。我想通過單擊此按鈕將每個選項卡上的每個數組存儲在二維數組中。 但我只是訪問上次打開的標籤數組。

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

我需要的是這樣的:

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

任何想法真的讚賞。謝謝。

+0

爲[QTabWidget :: currentWidget()](http://qt-project.org/doc/qt-5.0/qtwidgets/qtabwidget.html#currentWidget)你正在尋找?還有[QTabWidget ::插件(INT指數)](http://qt-project.org/doc/qt-5.0/qtwidgets/qtabwidget.html#widget)。 – thuga

+0

我無法訪問我的數組中的當前選項卡,通過tabWidget-> currentWidget()** - > getMyArray()** 我不能看到getMyArray – dare

+0

謝謝你,你是金丹花花公子的生活。 – dare

回答

1

使用QTabView::currentWidget()來獲得您的活動選項卡。強制轉換成TabView,並使用您的getArray()功能訪問陣列。就像這樣:

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