hakeの日記

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

続・自動で配置させる

Ruby/Qteの勉強 その8

QHBoxやQVBoxを使用してもう少し複雑に配置をさせる方法。
昨日のスクリプトで使用したテキストボックスの集合h1とv1を更に縦に並べてみる。

v =  QVBox.new(self)
setCentralWidget(v)     #これがないと上手くいかない
   h1 =  QHBox.new(v)   #カッコ内がselfでなくv
   v1 =  QVBox.new(v)   #  同上

このように組み合わせていけば、複雑な配置もできる(かもしれない)

#!/usr/bin/env ruby

require "qte"
require "qpe"
include Qte
include Qpe


class SampleWindow < QMainWindow
   def initialize()
      super()
      setCaption(tr("サンプル"))

      v = QVBox.new(self)
      setCentralWidget(v)     #これがないと上手くいかない
         h1 =  QHBox.new(v)   #カッコ内がselfでなくv
            @ebox1 = QMultiLineEdit.new(h1)
            @ebox2 = QMultiLineEdit.new(h1)
            @ebox3 = QMultiLineEdit.new(h1)
         v1 =  QVBox.new(v)   #カッコ内がselfでなくv
            @ebox4 = QMultiLineEdit.new(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