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-06-21(Tue)

ボタンを無効にする

Ruby/Qte勉強 その6

なにかの処理をさせている間、誤ってボタンを押さないように無効にしたい場合がある。その場合は

@pb1.setEnabled(false)

の様にすると無効化できる。

昨日のスクリプトボタン@pb2を追加して@pb1の有効/無効を変化させてみる。@pb1の状態を@en_pb1に設定して以下のメソッドctrl_pb1で@pb1の有効/無効を反転させる。このメソッドを@pb2に関連させてみる。

@en_pb1 = true

@pb2 = QPushButton.new(tr("ボタン2"),self)
@pb2.setGeometry(425,5,100,30)
connect(@pb2,QSIGNAL("clicked()"), self, 'ctrl_pb1')
def ctrl_pb1
   @en_pb1 = !@en_pb1
   @pb1.setEnabled(@en_pb1)
end

これでボタン2を押すごとにボタン1が有効/無効状態が反転する。

#!/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 = QMultiLineEdit.new(self)
      @ebox1.setGeometry(0,160,635,120)
      @ebox1.setText(tr("あいうえお"))

      @ebox2 = QMultiLineEdit.new(self)
      @ebox2.setGeometry(0,280,635,120)
      @ebox2.setReadOnly(true)

      @pb1 = QPushButton.new(tr("ボタン1"),self)
      @pb1.setGeometry(320,5,100,30)
      connect(@pb1,QSIGNAL("clicked()"), self, 'copy_ebox')

      @en_pb1 = true    #ボタン1の初期状態:有効

      @pb2 = QPushButton.new(tr("ボタン2"),self)
      @pb2.setGeometry(425,5,100,30)
      connect(@pb2,QSIGNAL("clicked()"), self, 'ctrl_pb1')
   end

   def copy_ebox
       naiyou = @ebox1.text.local8Bit.to_str
       @ebox2.setText(tr(naiyou))
   end

   def ctrl_pb1
      @en_pb1 = !@en_pb1        #ボタン1の状態を反転
      @pb1.setEnabled(@en_pb1)  #ボタン1に反映させる
   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/20050621/p3