Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 |

2005-08-18(Thu)

フォーカスポリシー

Ruby/Qte勉強 その25

ウィンドウ上にテキストボックスボタン等のウィジェットが配置されている場合、TABキーでフォーカスの移動することができる。各ウィジェットデフォルトフォーカス移動対象になっている模様、移動の順番はスクリプトで各ウィジェットインスタンスを作成した順番。フォーカスの移動対象から除外する場合はsetFocusPolicy( NoFocus )とする。明示的にフォーカスの移動対象にする場合は引数をStrongFocusやTabFocusとする。setFocusPolicyはQWidgetのメソッドである。

#!/usr/bin/env ruby

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


class SampleWindow < QMainWindow
   def initialize()
      super()
      setCaption(tr("サンプル"))
      @msg = QLabel.new(tr("これはサンプルプログラム\nTabによるフォーカス移動"),self)
      @msg.setGeometry(0,0,310,90)


      @ebox1 = QLineEdit.new(self)
      @ebox1.setGeometry(0,100,635,30)
      @ebox1.setFocusPolicy( StrongFocus ) #StrongFocus
      @ebox1.setText( "Focus" )

      @ebox2 = QLineEdit.new(self)
      @ebox2.setGeometry(0,140,635,30)
      @ebox2.setFocusPolicy( NoFocus )
      @ebox2.setText( "NoFocus" )

      @pb1 = QPushButton.new( "F", self)
      @pb1.setGeometry(320,5,100,30)
      @pb1.setFocusPolicy( TabFocus )     #TabFocus

      @pb2 = QPushButton.new( "NF", self)
      @pb2.setGeometry(430,5,100,30)
      @pb2.setFocusPolicy( NoFocus )

      bg = QVButtonGroup.new(self)
      bg.setTitle("Item")
      bg.setGeometry(10,200,120,180)

      @r1 = QRadioButton.new("F1", bg)
      @r1.setChecked(true)
      @r2 = QRadioButton.new("NF2", bg)
      @r2.setFocusPolicy( NoFocus )
      @r3 = QRadioButton.new("F3", bg)
      @r4 = QRadioButton.new("NF4", bg)
      @r4.setFocusPolicy( NoFocus )

      @combo1 = QComboBox.new(self)
      @combo1.setGeometry(170,200,160,30)
      @combo1.insertItem("F1")
      @combo1.insertItem("F2")

      @combo2 = QComboBox.new(self)
      @combo2.setGeometry(340,200,160,30)
      @combo2.setFocusPolicy( NoFocus )
      @combo2.insertItem("NF1")
      @combo2.insertItem("NF2")
   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

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hake/20050818/p2