自動で配置させる
Ruby/Qteの勉強 その7
テキストボックスやボタン等を配置する場合には.setGeometryを使用しますが、もっと単純に横(あるいは縦)に並べる場合はQHBox(あるいはQHVBox)クラスを使用する。
h1 = QHBox.new(self) setCentralWidget(h1) #これがないと上手くいかない @ebox1 = QMultiLineEdit.new(h1) #カッコ内がselfでなくh1 @ebox2 = QMultiLineEdit.new(h1) # 同上 @ebox3 = QMultiLineEdit.new(h1) # 同上
とするとテキストボックスは横に並び、
v1 = QVBox.new(self) setCentralWidget(v1) #これがないと上手くいかない @ebox4 = QMultiLineEdit.new(v1) #カッコ内がselfでなくv1 @ebox5 = QMultiLineEdit.new(v1) # 同上 @ebox6 = QMultiLineEdit.new(v1) # 同上
とすると縦にならぶ。
#!/usr/bin/env ruby require "qte" require "qpe" include Qte include Qpe class SampleWindow < QMainWindow def initialize() super() setCaption(tr("サンプル")) h1 = QHBox.new(self) setCentralWidget(h1) #これがないと上手くいかない @ebox1 = QMultiLineEdit.new(h1) #カッコ内がselfでなくh1 @ebox2 = QMultiLineEdit.new(h1) # 同上 @ebox3 = QMultiLineEdit.new(h1) # 同上 # v1 = QVBox.new(self) # setCentralWidget(v1) #これがないと上手くいかない # @ebox4 = QMultiLineEdit.new(v1) #カッコ内がselfでなくv1 # @ebox5 = QMultiLineEdit.new(v1) # 同上 # @ebox6 = QMultiLineEdit.new(v1) # 同上 @ebox1.setText(tr("テキストボックス1")) @ebox2.setText(tr("テキストボックス2")) @ebox3.setText(tr("テキストボックス3")) # @ebox4.setText(tr("テキストボックス4")) # @ebox5.setText(tr("テキストボックス5")) # @ebox6.setText(tr("テキストボックス6")) end end $defaultCodec = QTextCodec.codecForName("utf8") app = QPEApplication.new([$0]+ARGV) app.setDefaultCodec($defaultCodec) QApplication.setFont(QFont.new("lcfont",18)) app.showMainWidget(SampleWindow.new) app.exec