PyQt を使用して小さなアプリケーション (主に Windows 互換) を作成する予定で、適切なアプローチを見つけるために助けが必要です。アプリには、画像を表示するためのQLabel 、いくつかのQPushButtonsを含むフレームレス ウィンドウ、およびQListViewが含まれます。問題は、QLabelとQListViewの両方がZ 軸を中心に固定角度だけ回転します。アイデアは、アプリ全体を、ある種のテクニカル デバイス (中央のメイン ウィジェット) の下に置かれた写真とメモ帳のように見せることです。3 つのウィジェットはすべて、固定サイズで 1 つのウィンドウとして移動できるコンパウンドを形成します。
フレームレスで透明なQGraphicsView内で変換されたQGraphicsProxyWidgetを使用して、メモ帳を誰かがデスクトップに投げたばかりのように見せることができました。今、この部分を残りの部分とどのように接続するのか疑問に思っています。私が考えることができる可能性は次のとおりです。
3 つのウィジェットすべてをQGraphicsProxyWidgets に配置し、非表示の QGraphicsViewを使用してすべてをまとめる
現在のメモ帳の設定を、中央部分の単一のフレームレスQWidgetと、アルファ チャネルで回転した画像を表示するQLabelと組み合わせます (とにかく、画像は PIL* で変更されます)。
私のQGraphicsProxyWidgetアプローチを QLabel と QListView の両方で個別に使用し、それらをメインのウィジェットと組み合わせます。
全然違うもの?
私が欲しい 2 つの「機能」は、アプリ全体のドロップ シャドウ (過去に異なるウィジェットでQGraphicsEffectを同時に動作させるのに問題があったことを思い出すことができます) とアプリ全体のマスクです。ウィジェットの境界内にあるが見えないものは、マウス イベントを受け取りません。また、アプリがそれほど遅延なく開くことを望んでいますが、QLabel で回転した画像を表示する方が、QGraphicsView 内でQLabel全体を回転するよりも速いか遅いかはわかりません(画像はいくつか交換されます)。回実行時)。
誰かがどの方法をとるか、またはさまざまなアプローチの長所と短所を指摘することを明確にしてくれることを願っています。前もって感謝します。
*Python イメージ ライブラリ