[PySide] ウィンドウの大きさに応じて配置されたボタンを改行する

やりたいことは単純なのですが、地味に苦戦したのでメモ。

Button_layout_test

クリックで再生

こんな感じに、横幅の大きさに合わせて1行に配置するボタンの数を増減できるようにしたかったのですが
GridLayoutとかだとアウツなので、moveを使って配置するようにしてみました。
以下コード

難のひねりもない感じですが、これで出来ました。

苦戦したのが、GroupBoxの横幅を取得する方法。
self.ui.geometry().width() だと、Buttonを押したときにPrintするとかはできたのですが
上のコードの wid < size_x してるところで self.ui.geometry().width() < size_x だと上手く行かず
ヽ(`Д´)ノウワァァァンになりました。
self.ui.groupBox.sizeHint() でも取得できず、仕方ないので引数で横幅を与える
リサイズしたときのイベントで、横幅を取得してボタンを再配置するようにしてみました。

PySideのGeometryの扱いがイマイチよく分からないなぁ

コメントを残す

メールアドレスが公開されることはありません。


*