2014-06-19 2 views
1

첫째, TextEditcontent(text)을 얻을 수있는 방법을 다음과 같은 이미지 한마디로mdi subWindow에있는 TextEdit의 텍스트 속성에 어떻게 액세스합니까?

, 봐.
알림 : Qt 디자인이 아닌 코드로 MDI subWindow(QWidget)TextEdit을 동적으로 생성했습니다. 다음

만들기 위해 쓴 코드입니다 MDI subWindowTextEdit :

QWidget *widget = new QWidget(this); 
QTextEdit *TextEdit = new QTextEdit(widget); 
QMdiSubWindow *mdiWindows = ui->mdiArea->addSubWindow(widget); 
mdiWindows->setGeometry(5, 5, 300, 250); 
mdiWindows->setWindowTitle(finfo.baseName()); 
mdiWindows->setWindowState(Qt::WindowMaximized); 
mdiWindows->layout()->addWidget(TextEdit); 
mdiWindows->show(); 

그리고 이제, 어떻게 텍스트 편집기가 콘텐츠를 얻을 수의 속성을 텍스트로 액세스 할 수 있습니까?

답변

0

활성 서브 윈도우를 얻는 방법은 QMdiSubWindow * QMdiArea::activeSubWindow() const입니다.

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

QList<T> QObject::findChildren (const QString & name = QString()) const 반환 모든 어린이와 함께 : 작성시

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

그러나 당신은 또한 당신의 자식 위젯의 이름을 설정해야합니다 : 당신은 또한 특정 이름을 가진 아이를 얻기 위해 findChild을 사용할 수 있습니다 이 이름을 생략하면 (자), 모든 오브젝트 명이 일치합니다. 경우 사람에

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

고마워,하지만 부모의'subwindow'가 활성 창인'TextEdit'에 접근하고 싶습니다. –

+0

@LionKing 활성 서브 윈도우를 얻는 것은'QMdiSubWindow * QMdiArea :: activeSubWindow() const'에서 가능합니다. 나는 대답을 업데이트했다. – Nejat

+0

Mr'@ Nejat', 제게'위젯() '함수의 목적이 무엇인지 말해 주시겠습니까? –

1

QTextEdit::plainText()으로 이동하십시오. 분명히 동적으로 생성 한 QTextEdit에 대한 포인터를 유지해야합니다.

+0

답장을 보내 주셔서 감사합니다. –

0

이 같은 질문 WRT (나 같은) PyQt는/PySide 있습니다 : 그래서 당신에 의해 위젯의 모든 자식에 액세스 할 수있는 액티브 서브 윈도우의 현재 위젯에 액세스하기를, 다음을 사용하십시오

txtWidget=myQMdiArea.activeSubWindow().widget()

관련 문제