hakeの日記

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

テキストボックスをつくる

Ruby/Qteの勉強 その3

@ebox1 = QLineEdit.new(self)
@ebox1.setGeometry(0,250,635,30)
@ebox1.setText(tr("あいうえお"))

@ebox2 = QMultiLineEdit.new(self)
@ebox2.setGeometry(0,280,635,120)
@ebox2.setText(tr("あいうえお\nかきくけこ"))
@ebox2.insertLine(tr("さしすせそ\nたちつてと"))  #05/06/29追加

のようにするとテキストボックスが追加される。QLineEditとQMultiLineEditの違いは改行ができるかどうか(だと思う)。予め文字を入れたい場合は.setTextを使用。なかの文字は自由に編集ができる。QLineEditでは

@ebox1 = QLineEdit.new(tr("あいうえお"),self)

でも、できたけどQMultiLineEditではエラーになった。
既に文字が入っている状態で、文字を追加させたい場合は.insertLineを使用する(05/06/29追加)
テキストボックスを表示専用(書き換え不可)にしたい場合は

@ebox2.setReadOnly(true)

を追加する。

#!/usr/bin/env ruby

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

class SampleWindow < QMainWindow
   def initialize()
      super()
      setCaption(tr("サンプル"))
      msg = QLabel.new(tr("これはサンプルプログラム"),self)
      msg.setGeometry(10,10,300,30)

      @ebox1 = QLineEdit.new(self)
#      @ebox1 = QLineEdit.new(tr("あいうえお"),self)  #QMultiLineEditではエラー
      @ebox1.setGeometry(0,250,635,30)
      @ebox1.setText(tr("あいうえお"))

      @ebox2 = QMultiLineEdit.new(self)
      @ebox2.setGeometry(0,280,635,120)
      @ebox2.setText(tr("あいうえお\nかきくけこ"))
      @ebox2.insertLine(tr("さしすせそ\nたちつてと"))  #05/06/29追加
#      @ebox2.setReadOnly(true)                       #表示専用にする
#      @ebox2.setReadOnly(false)                      #falseだと編集可
   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