Metasequoia BBS

| New message | Normal | Tree |
Status
Tag
Keyword
[8474] PythonでWidgetBaseでhorzLayoutのfreeを指定したときの指定方法 / まじかる☆しげぽん
[Question] Response
vertLayoutで[free]  位置・サイズを手動指定 とあるのですが、サイズはwidhで指定できると思うのですが、位置の指定の記述が分からないです。
freeで位置をピクセル単位で指定するにはどのように記述すればいいでしょうか?
2019-12-10 00:26
[8475] Re: PythonでWidgetBaseでhorzLayoutのfreeを指定したときの指定方法 / Administrator
GUIは解像度フリーとして設計しているので、プラグインやスクリプトからはあえて位置をピクセル単位では指定できないようになっております。
少し余白を空けたいときは、位置を指定する代わりにダミー用のフレームを挿入して、フレームにヒントサイズを指定(horz/vertLayoutにhintsize、hintSizeRateX/Yに値を入力)する方法が推奨されます。本体や標準プラグインもそういったGUI設計を行っております。
2019-12-10 12:34
[8476] Re: PythonでWidgetBaseでhorzLayoutのfreeを指定したときの指定方法 / Administrator
サイズに関してもフィルまたはヒントサイズでの指定が推奨されます。
width/heightは特定サイズのビットマップ画像にピタリと合わせたいなど、どうしてもピクセル単位の指定が必要な場合にのみ限定してください。そうしないと高DPIモニタで非常に見づらくなります。
2019-12-10 12:50
[8477] Re: PythonでWidgetBaseでhorzLayoutのfreeを指定したときの指定方法 / まじかる☆しげぽん
ご返答ありがとうございます。もう一点
ヒントサイズの概念が良くわかっていないのですが、例えば画面の幅に対して50%ずつのサイズにボタンを作成したい場合はどのようにするのが正解なのでしょうか?
現在は一応HintSizeを使っているのですが、雰囲気で50%になっていて正解の方法が分からないため。

またビットマップ画像に対する言及があるのですが、メタセコのPythonスクリプトで、Textureを取得してテクスチャ一覧リストのようなもの表示したい場合どのように記述するのでしょうか?
ボタンのSVG画像を表示するのはありましたが、ウェジエット上に画像を表示するのは見当たらないように感じました。
またその際に、画像のスケーリングを行いたい場合どのようにすればいいでしょうか。

質問ばかりですみません。
2019-12-10 15:24
[8478] Re: PythonでWidgetBaseでhorzLayoutのfreeを指定したときの指定方法 / Administrator
ヒントサイズの100%は標準的なウィジェット1行分の高さとなります。ボタンやラベルなど各ウィジェットはこの高さと同じか若干前後する程度で表示されますので、何行分くらいにしたいかを考えてヒントサイズの値を指定してください。
ウィンドウ・ダイアログやフレーム内で何%の幅として指定したい場合は、レイアウトにフィルを指定したうえでfillRateX/Yに比率を入れてください。2つのウィジェットを50%ずつにするならそれぞれ1:1を、66%と33%にしたいなら2:1(1:0.5でも可)のようにfillRateの値を指定します。

ビットマップを扱えるのはプラグインSDKのみです。Python自体に標準で扱える画像クラスがなく、またこれまで特に要望もなかったので、スクリプトからのビットマップは未対応となっています。
2019-12-10 16:25
[8479] Re: PythonでWidgetBaseでhorzLayoutのfreeを指定したときの指定方法 / まじかる☆しげぽん
ご返答ありがとうございます。
ヒントサイズの概念理解できました。
この説明を、スクリプトリファレンスにも掲載していただければと思います。

ビットマップは自分Python触り始めて、何かを扱うのに基本的にライブラリを追加で入れていて基本機能ではあまり扱えるものは無いのかなと感じました…。
標準で扱えないならば仕方ないですね。承知しました。

ご返答ありがとうございます。
2019-12-10 17:19