I have a QTabWidget
, where each tab has a QPlainTextEdit
as its widget. So, how do I access each tab widget? How do I edit that widget?
You can use the widget
function of QTabWidget
in order to get the widget at the specified tab index.
If the QPlainTextEdit
is the only widget of every tab page then the returned widget will be that. Otherwise you need to get the children
of the widget and find the QPlainTextEdit
in them.
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);