2011/10/27

PyQt : 常に手前に、always on top

リアクション: 
PyQtウィンドウを、DCCソフトなどで開いて、操作している最中に、DCCソフトをフォーカスしてしまうと、背面に隠れてしまいます。

その場合、ウィンドウを「常に手前に」モードで起動して解消させます。
サンプルは、こちら。



WindowStaysOnTopHintのマニュアルにたどりつけませんでした・・・。
隠れすぎです。
Qt Designerにもそれらしきものは見当たらず。

次に、モードをトグルする場合、モードが変わったらウィンドウを再表示させないといけないみたいです。
トグルをチェックボックスで切り替えるサンプルはこちら。



alwaysOnTopStateメソッドの最後に、show()を実行して、再表示させてます。

Softimageで実行する場合、PyQtForSoftimageというプラグインを作成されている方が居ますので、そちらを使えば、Softimageにインタフェース内でQtウィンドウを使用出来ます。
これで、裏に隠れません。

プラグインダウンロード
https://github.com/caron/PyQtForSoftimage

Softimage Mailng List Archive - PyQt for Softimage Thread
http://groups.google.com/group/xsi_list/browse_frm/thread/862d4f8fb4325010

2012で試したんですが、アドオンをインストールした時点で、エラーで止まってしまうので、ちょっと書き換えました。
コードの半分チョイ下辺りです。

qtevents.py


イベント系の定数が認識しないみたいです。
とはいえ、この辺りは、余程の事が無いと使わないので、全てコメントアウトしても問題無いかな?

使うには、基本の構文ではダメで、一緒にインストールされた、pyqt_example.pyを見れば、使い方が分かります。

Steven Caronさん凄い!

0 件のコメント: