PDFリーダーを作るために最初からPyQt5(II)

前の記事では、我々は最初のインターフェースのPDFリーダーを実現しました。今回は、新しい読み取り機能は、基本的なフリップやズームなどの操作を実現することができます。しかし、唯一であることは、同時に本を読むことができます。

図は、以下の効果を示しています。

13406307-8b56a8686effe164.png

今、私は主な新機能の中に、降りてきます:

タブ

私たちは1つのウィンドウで複数のページを表示することができQTabWidget。このタブのスタックについては、ページがself.tableとして表示され、それは最初のインターフェースです

self.table(QTableWidget) - > self.tabwidget(QTabWidge)。

13406307-9b7d0a67f6bb2cab.png

新しいタブ:あなたが読んで起動するたびに、新しいタブ、ファイル名の名前を作成します。

13406307-7ffe88a21a169ca0.png

その中で、我々は[ホーム]タブを尋ね、そのタブスタックは閉じられません。

13406307-821e96f5ff90c84c.png

QScrollArea、QScrollArea支持ホイールの操作に対応したインタフェースタブページ領域を読み取ります。それは我々がPDFのページサイズがQScrollAreaサイズを超えたスケールならば、我々はページを閲覧することができるように、それは自動的に、ローラーを表示されます、です。これは、MyArea QScrollAreaクラスがオーバーロードされ、反転し、サポートおよびその他の操作をズームするショートカットをバインドします。

ピックスマップ - >ラベル - >エリア(MyArea) - > VBOX(QVBoxLayout) - >タブ(QWidgetの) - > self.tabwidget(QTabWidge)。

13406307-b2370b453a1a19f0.png

私たちはどのようにMyAreaこのクラスの定義を見てみましょう:

MyArea(QScrollArea)

ここでは、self.widgetコールによって、すなわちクラスのインスタンスメソッドのリーダーを自己パラメータリーダーメインクラスを受信するためのinitメソッドを定義します。

init_action機能では、我々は4 QShortCut例を構築し、ショートカットが縮小、拡大、前のページの次の動作を実現するためにサポートされています。

13406307-ab757e5708ac8798.png

以下では、ズーム、フリップ機能の具体的な実現を紹介します:

ズーム機能

ページサイズを格納するために使用self.sizeは、それがself.sizeに応じてズーム機能を実現することであるself.page。

13406307-0a041c415629368d.png

ピックスマップ - >ラベル - >エリア(MyArea) - > VBOX(QVBoxLayout) - >タブ(QWidgetの) - > self.tabwidget(QTabWidge)。

タブタブの取得対象は、レイアウトオブジェクトは、直接地域のラベルコントロールを変更し、VBOX、ウィジェット取得対象領域を取得します。

13406307-534e77961a6d07bb.png

その後、我々はフリップ機能を実装する方法を紹介します

フリップ機能

今回は、PDFリーダーのみが同時に一冊の本、ライン上のself.current_pageによって制御されるので、ちょうどフリップ機能を読むことができます実現しています。

総ページ数self.doc.pageCount、現在のページは、負または総ページ数を超えることはできません。あなたは、変更のself.current_pageを行った後、self.set_page操作が直接地域のラベルコントロールを変更する実行することができます。

13406307-18aeca8e790a10dd.png

おすすめ

転載: blog.csdn.net/weixin_34000916/article/details/91010935