2

多かれ少なかれ MS Word と同じように、ページ分割された方法でリッチ テキスト ドキュメントを表示するアプリケーションを構築しようとしています。今のところ、一度に 1 ページだけ表示したいと思います。

この質問から、ドキュメントをQTextDocumentで表す必要があることがわかりました。質問の作成者はビュー表現に重点を置いていますが、ページ分割された方法でドキュメントデータにアクセスする方法について学びたいと思います。setPageSize()クラスにやなどのメソッドがあることがわかりますpageCount()。それに応じて呼び出しsetPageSize()が更新されるようpageCount()です。

問題は、選択したページのコンテンツにアクセスして QtextEdit に表示する方法がわからないことです。

(私はPySideライブラリを使ってPythonからQtにアクセスしています)

4

1 に答える 1

2

QTextEditテキスト エディターであり、実際にはページの概念がなく、代わりに段落に焦点を当てています。

ページサイズを尊重する独自のページ分割されたビューを作成することもできますが、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);
}
于 2013-04-08T21:20:31.033 に答える