2016/11/25(金) [n年前の日記]
#2 [python] PySideのアレコレをメモ
PySide関係のアレコレをメモ。
◎ QGraphicsSceneで表示してるアレコレの透明度。 :
QGraphicsView + QGraphicsScene に表示しているアイテムの透明度は、
_setOpacity
で変更できる。指定できる値は、0.0〜1.0。0.0が透明で、1.0が不透明。
◎ ウィジェットの隙間を少なくしたい。 :
PySideを使ったスクリプトを書いてたら、メインウインドウの大きさが、かなり大きくなってしまって。このままでは、例えば1366x768ドットのデスクトップ上で実行すると、はみ出して表示されてしまう…。
安いノートPCはえてして1366x768ドットの液晶を使ってるので、そのあたりの解像度が最低ラインだろうと。この解像度からはみ出してしまうようではマズい。 *1 ということで、アプリのウインドウサイズ、特に縦幅を小さくしないといけないなと。
とりあえず、 _QVBoxLayout の、中に入るウィジェットの隙間を小さくしていくことに。 _setSpacing() を呼ぶことで、隙間のドット数を指定することができる。0〜2ドットぐらいを指定してみたら、結構小さくなってくれた。
更に、Q*Layout の周囲の余白も少なくする。 _setContentsMargins() を使えば、周辺の余白を調整することができる。
これでようやく、ウインドウの縦幅を740ドットぐらいまで小さくできた。
ちなみに、今回書いてるアプリに特化すれば、別の策はいくつか思いつく。
安いノートPCはえてして1366x768ドットの液晶を使ってるので、そのあたりの解像度が最低ラインだろうと。この解像度からはみ出してしまうようではマズい。 *1 ということで、アプリのウインドウサイズ、特に縦幅を小さくしないといけないなと。
とりあえず、 _QVBoxLayout の、中に入るウィジェットの隙間を小さくしていくことに。 _setSpacing() を呼ぶことで、隙間のドット数を指定することができる。0〜2ドットぐらいを指定してみたら、結構小さくなってくれた。
更に、Q*Layout の周囲の余白も少なくする。 _setContentsMargins() を使えば、周辺の余白を調整することができる。
これでようやく、ウインドウの縦幅を740ドットぐらいまで小さくできた。
ちなみに、今回書いてるアプリに特化すれば、別の策はいくつか思いつく。
- 今は左側のドックだけを使って各種設定項目を並べているけど、右側のドッグにいくつか項目を引っ越しして表示する。ウインドウの横幅は無駄に(?)大きくなるけど。
- ツールバーを上部に並べるのではなく、スクリプト起動時から左側に、縦一直線に並べることができれば…。だけど、そんなことできるのかな?
- パレット表示部分と、RGB・HSLスライダー部分を、タブ表示で切り替える、という手もある。けれど、できればそこは両方を同時に表示しておきたいわけで。
- むしろ、ブラシ種類一覧部分を隠せるようにしておいたほうがいいのかも。例えばGIMPは、ブラシのオプション設定と、ブラシ種類一覧が分離しているし。絶えず同時に表示しておかないと使い勝手が悪くなるわけではない、ということだろう。
- 設定関係部分を、スクロールエリアに入れてしまう。ただ、目的の個所を表示・操作するのが面倒になる。
- MDI風の見た目にしてしまう。
*1: もっとも、自分の手持ちのノートPC(昔、ネットブックと呼ばれてたソレ)は、画面解像度が 1024x600 だったりするので、本当はそのくらいを最低ラインとして考えておくべきかもしれない。けど、さすがに今時、その解像度では実用にならないだろうし、そういうPCについては考えなくてもいいのかもしれない。そのあたりの解像度の液晶を使ってるPCは、CPUもGPUもスペックは期待できないので、その手のスクリプトも満足な速度で動かないだろうし。
[ ツッコむ ]
以上です。