2012-03-01 3 views
-1

는 : 디버깅을 통해QTextDocument (및 QTextEdit)는 크기를 업데이트하지 않습니까? 나는 다음과 같은 코드가 실행이 (TE는 텍스트 편집기에 대한 포인터 인) 그 후, 빈 초기화합니다은 QTextEdit를 만든

TE->setText("this is a test string, it should have a non zero height"); 
    auto d(TE->document()); 
    auto s(d->toPlainText()); 
    auto _s(d->size()); 
    auto _h(_s.height()); 

나는 문자열 s가 올바르게 설정되어 있는지를 참조하십시오. 그러나 크기 _s은 단순히 0입니다. 왜, 어떻게 수정해야합니다. 어디서나 그리고 어떤 장소에서나 작동하지 않아야합니까? 나는 또한 위젯을 보여줄 때만 크기 조정이 발생하는 경우에 대비하여 TE->show() 행을 추가하려고 시도했지만 아무 소용이 없습니다. 이 원인은 무엇입니까?

답변

0

문서의 텍스트를 변경해도 문서 너비가 변경되지 않습니다. QTextDocument에 대한 문서에서.

문서의 크기는 텍스트 너비를 설정하거나 전체 페이지 크기를 설정하여 변경할 수 있습니다.

아마도 d-> adjustSize()를 호출하면 원하는 위치로 이동하게됩니까? 그러나 문서의 크기를 변경해도 QTextEdit 위젯의 크기는 변경되지 않습니다.

+0

누군가가 방금 말했듯이 그게 이상합니다. http://stackoverflow.com/questions/9506586/qtextedit-resize-to-fit 그 질문에서 저는 다른 방법으로 문제를 물었습니다. 난 그냥 위젯의 텍스트의 실제 크기를 (위젯의 너비 및 wordwrapping 주어진) 얻을 방법이 필요합니다. – paul23