-1

ユーザーが何を入力しても、すべて大文字のQLineEditのテキストを実装しようとしています。いくつかの解決策を見つけましたが、どれもRubyでは機能しません。簡単に言うと、QLineEditオブジェクトsearchEditとこのコードがあります。

class UpcaseValidator < Qt::Validator
   def validate(input,pos)
     input.upcase!
     Qt::Validator::Acceptable
   end
end
...
def initialize(parent = nil)
  uppercaseValidator = UpcaseValidator.new;
  searchEdit.setValidator(uppercaseValidator)
...

ユーザーが入力フィールドに入力するたびにvalidateメソッドが正しくトリガーされますが、大文字にはなりません。validate内で入力変数を変更しても、searchEditオブジェクトに伝播されないようです。

Qt Rubyバインディングに関するいくつかの優れたドキュメントを指摘しても、助けてくれてありがとう。

4

1 に答える 1

0

QValidatorには ' ' と呼ばれるメソッドがあり、fixup()おそらくあなたが望むことを行うでしょう :)

于 2010-07-25T08:21:17.400 に答える