访问QTabWidget中选项卡的小部件

时间:2011-12-30 10:54:25

标签: qt qplaintextedit qtabwidget

我有一个QTabWidget,其中每个标签都有一个QPlainTextEdit作为其小部件。那么,我如何访问每个标签小部件?如何编辑该小部件?

1 个答案:

答案 0 :(得分:12)

您可以使用QTabWidget的{​​{3}}函数,以便在指定的标签索引处获取窗口小部件。

如果QPlainTextEdit是每个标签页的唯一小部件,那么返回的小部件就是那个。否则,您需要获取窗口小部件的children并在其中找到QPlainTextEdit

QPlainTextEdit* pTextEdit = NULL;
QWidget* pWidget= ui->tabWidget->widget(1); // for the second tab
// You can use metaobject to get widget type or qobject_cast
if (pWidget->metaObject()->className() == "QPlainTextEdit")
    pTextEdit = (QPlainTextEdit*)pWidget;
else
{
    QList<QPlainTextEdit *> allTextEdits = pWidget->findChildren<QPlainTextEdit *>();
    if (allTextEdits.count() != 1)
    { 
        qError() << "Error";
        return;
    }  
    pTextEdit = allTextEdits[0];
}

// Do whatever you want with it...
ptextEdit->setPlainText("Updated Plain Text Edit);