如何访问位于mdi subWindow中的TextEdit的文本属性?

时间:2014-06-19 02:05:57

标签: c++ qt qt5

首先,请看下面的图片

简而言之,如何获得content(text)的{​​{1}} 注意:我已经通过代码而不是Qt设计动态创建了TextEditMDI subWindow(QWidget)

以下是用于创建TextEditMDI subWindow

的代码
TextEdit

现在,我如何访问TextEdit的text属性来获取内容?

3 个答案:

答案 0 :(得分:1)

QTextEdit::plainText()应该让你到那里。显然,您需要保留指向您动态创建的QTextEdit的指针。

答案 1 :(得分:0)

QMdiSubWindow * QMdiArea::activeSubWindow () const提供了获取活动子窗口的功能。您还可以使用findChild来获取具有特定姓名的孩子:

QTextEdit * textEdit = ui->mdiArea->activeSubWindow()->widget()->findChild<QTextEdit*>("myTextEdit");

但是您还应该在创建子窗口小部件时为其设置名称:

QTextEdit *textEdit = new QTextEdit(widget);
textEdit->setObjectName("myTextEdit");

同样QList<T> QObject::findChildren ( const QString & name = QString() ) const返回具有给定名称且可以强制转换为类型T的所有子节点。省略名称会导致所有对象名称匹配。因此,您可以通过以下方式访问小部件的所有子项:

QList<QTextEdit *> list = ui->mdiArea->activeSubWindow()->widget()->findChildren<QTextEdit *>();
foreach(QTextEdit *w, list)
{
    ...
}

答案 2 :(得分:0)

如果有人和PyQt / PySide(像我一样)有同样的问题:要访问活动子窗口中的当前窗口小部件,请使用以下命令:

txtWidget=myQMdiArea.activeSubWindow().widget()