PyQt4 と python-poppler-qt4 を使用して、PDF ファイルを表示するアプリケーションを作成しようとしています。
これまでのところ、Poppler で生成され、QLabel に設定され、QFrame に追加されたピックスマップを読み込むことで、ドキュメント全体を表示することができました。QFrame は QScrollArea に表示されます。
解像度を上げてピックスマップをもう一度再生成することによって行われるズームを実装するまでは、かなり良いように見えます。このプロセスでは、ドキュメント全体をピックスマップにレンダリングする必要がありますが、これには明らかに時間がかかり、不要な遅延が発生します。
ロジックは、私が見ているページの画像のみを表示することを望んでいます (量子物理学のように聞こえます)。私は2つの選択肢を念頭に置いています:
- QLabels を使用して空白のページを作成し、スクロール領域に表示されたときに画像をロードします。
- ページを 1 つだけ作成し、表示する直前に先行または後続のページを追加または削除します。
自分が正しい道を進んでいるのか、それとも別の方法があるのか どうかはわかりません。
最初のオプションは、空白ページの可視性によってピックスマップをアップロードする必要がある時期が決まるため、より実現可能に思えます (ただし、ページが非表示のときにそのピックスマップを削除する方法がわかりません)。ただし、この方法でズームが高速になるかどうかはわかりません。たとえば、600 ページのドキュメントを再生成する必要があるためです。ただし、空白のページがあります。
2 番目のオプションでは、ズーム時に一度に 1 ~ 4 ページを再生成する必要があるため、ズームが確実に改善されます。ただし、その 2 番目のケースでは、ページの構築をトリガーする方法がわかりません。
何を提案しますか?