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

Posted

技术标签:

【中文标题】通过单击 QTabWidget 外部的按钮,将每个选项卡(QTabWidget)中的数组保存到 QTabWidget 外部的二维数组【英文标题】:save an array in each tabs (QTabWidget) to a 2D array outside of QTabWidget by click on a button outside of QTabWidget 【发布时间】:2013-08-01 19:41:34 【问题描述】:

在我的 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()

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

【问题讨论】:

QTabWidget::currentWidget() 是您要找的吗?还有QTabWidget::widget(int index)。 我无法通过 tabWidget->currentWidget() 在当前选项卡中访问我的数组 ->getMyArray() 我看不到 getMyArray 谢谢你,你是个救命的家伙。 【参考方案1】:

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

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

【讨论】:

以上是关于通过单击 QTabWidget 外部的按钮,将每个选项卡(QTabWidget)中的数组保存到 QTabWidget 外部的二维数组的主要内容,如果未能解决你的问题,请参考以下文章

尝试通过单击打开它的 div 中断按钮外部来关闭弹出窗口

单击外部按钮时将代码添加到CKeditor

将多个 QMainWindow 合二为一作为 QTabWidget 中的选项卡

Javascript:如何让单选按钮的“onchange”事件通过外部函数触发?

PyQt5 组件之QTabWidget

使用 mongoldb、mongoose、jade 和 express 通过按钮单击删除条目