hakeの日記

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

文字を表示させてみる

Ruby/Qteの勉強。
昨日のsuperの次に

setCaption(tr("サンプル"))
QLabel.new(tr("こんにちは"),self)

を追加、実行。
タイトルバーに“サンプル”と表示されて、本体に“こんにちは”と表示される。本体の方を長い文字に変えてみると全部表示されなくなってしまいます。そこで

msg = QLabel.new(tr("これはサンプルプログラム\n2行目\n3行目"),self)
msg.setGeometry(0,0,300,200)

の様にすると表示エリアを広げることができる、msgは適当な変数名、setGeometryのパラメータは左上のX,Y座標,エリア幅,エリア高さとなる。このときに文字はエリア内で左中央に表示されるので、左上に表示させたい場合は

msg.setAlignment(AlignLeft)

を追加

追記

ここの説明によると水平フラグと垂直フラグのORで位置を決めるようです。

  左上の場合(左端と上端のOR)
  AlignLeft || AlignTop
#!/usr/bin/env ruby

require "qte"
require "qpe"

include Qte
include Qpe


class SampleWindow < QMainWindow
   def initialize()
      super()
      setCaption(tr("サンプル"))
      msg = QLabel.new(tr("これはサンプルプログラム\n2行目\n3行目"),self)
      msg.setGeometry(0,0,300,200)      #表示位置、広さを指定
      msg.setAlignment(AlignTop)        #エリア内左上づめ
#      msg.setAlignment(AlignBottom)    #エリア内左下づめ
#      msg.setAlignment(AlignLeft)      #エリア内左上づめ
#      msg.setAlignment(AlignRight)     #エリア内右上づめ
#      msg.setAlignment(AlignCenter)    #エリア内中央
   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