1

私の QTabWidget の各タブには、配列があります。各タブに対して、この配列と QGraphicsScene を含む "TabView" という名前のクラスを定義して、その上に線を描画し、その他の要素を描画します。新しいタブを開くと、次のようにクラス 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()

どんなアイデアでも大歓迎です。ありがとうございました。

4

1 に答える 1

1

QTabView::currentWidget()アクティブなタブを取得するために使用します。それを にキャストしTabView、関数を使用して配列にアクセスしますgetArray()。このような:

TabView *active_tab = qobject_cast<TabView*>(ui->tabWidget->currentWidget());
if(active_tab)
    tabsArray[index] = active_tab->getArray();
于 2013-08-02T07:55:44.543 に答える