2013-04-08 3 views
2

MS Word에서와 같이 페이지 형식으로 서식있는 텍스트 문서를 표시하는 응용 프로그램을 만들려고합니다. 지금은 한 번에 한 페이지 만 표시하고 싶습니다.QTextDocument 페이지에 액세스하는 방법

this question 나는 QTextDocument으로 문서를 표현해야한다는 것을 알았습니다. 질문의 저자가 보기 표현에 더 초점을 맞추고 있지만, 데이터에 페이지 방식으로 액세스하는 방법에 대해 알아 보려합니다. 클래스에 setPageSize()pageCount()과 같은 메소드가 있음을 알 수 있습니다. setPageSize()을 호출하면 그에 따라 pageCount()을 업데이트하는 것처럼 보입니다.

문제는 선택한 페이지의 내용에 액세스하여 QtextEdit에 표시하는 방법을 모르겠다는 것입니다.

대신이 단락 주위에 초점을 맞추고있어,

답변

2

QTextEdit 텍스트 편집기입니다 정말 페이지의 개념이없는 (나는 PySide 라이브러리를 이용하여 파이썬에서 Qt를 접근하고있다).

페이지 크기를 존중할 수있는 페이지 매김 뷰를 직접 만들 수도 있지만 Qt가 이미 제공합니다. QPrintPreviewWidget 또는 QPrintPreviewDialog을 살펴보십시오. 그들은 QTextEdit과 함께 사용하기 쉽습니다.

서브 클래스 QTextEdit 다음 함수를 구현하십시오 (preview 함수는 Qt 슬롯 임). printPreview 함수는 대화 상자에 QTextEdit의 콘텐츠가 포함 된 페이지 매김보기를 표시합니다.

void MyTextEdit::printPreview(QPrinter *printer) 
{ 
    QPrinter printer(QPrinter::HighResolution); 
    QPrintPreviewDialog preview(&printer, this); 
    connect(&preview, SIGNAL(paintRequested(QPrinter*)), SLOT(preview(QPrinter*))); 
    preview.exec(); 
} 

void MyTextEdit::preview(QPrinter *printer) 
{ 
    print(printer); 
} 
+0

답장을 보내 주셔서 감사합니다. 귀하의 솔루션을 파이썬으로 번역하고 어떻게 작동하는지 살펴 보려고합니다. – kmbt