hakeの日記

Windows環境でプログラミングの勉強をしています。

ウィジェットの配置 - QGridLayout

Ruby/Qteの勉強 その39
昨日のBigDecimalを利用して簡易電卓の作成、一応表示桁数は20桁としてみる。
QGridLayoutの使用方法は、あさあさみっくすさんの公開メモを参考にさせていただきました。
ウィジェット配置用に6×4のグリッドを作成、その内LCD表示用に0行目全体を使用

# 部品配置用グリッド 6x4
@v = QGridLayout.new(@f, 6, 4, 10, 10, 'grid')

# LCD表示部分
@lcd = QLCDNumber.new(MAX_DIGIT, @f)

# グリッド1行目(0,0)-(0,3)に配置
@v.addMultiCellWidget(@lcd, 0,0,0,3)

下のグリッドにはそれぞれに入力用のキーとなるQPushButtonを配置していく。QGridLayoutは複数のグリッドにまたがってウィジェットを置く方法さえ知っていれば、画面のデザインが簡単にできるので非常に使いやすいクラスだと思います。
最初キーの行数は少ない状態で実行したところQLCDNumberが縦方向に拡大されて表示してしまったので、.setRowStretchで0行目の優先度を下げていたのだけれども、キーの行数を増やしたところバランス良く表示されたのでコメントアウト
使用しているウィジェットは全てQFrameの上に置くようになっている、これを直接selfの上に置くようにするとエラーになった。何故QFrameが必要とされるのかは不明です。


ソースは別館のRuby/Qteの勉強部屋にて