-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 中更改输入变量不会传播回 searchEdit 对象。

感谢您的帮助,甚至向我指出了一些关于 Qt Ruby 绑定的好文档。

4

1 回答 1

0

QValidator有一个名为' fixup()'的方法,它可能会做你想要的:)

于 2010-07-25T08:21:17.400 回答