2010-07-24 51 views
-1

我试图实现QLineEdit的文本,无论用户输入什么类型都是大写字母。我发现了几种解决方案,但他们都没有在Ruby中工作。总之我有QLineEdit的对象searchEdit和验证码:Qt QLineEdit红宝石自定义验证

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绑定的一些好文档。

+0

对不起,我很困惑是downwote因为我看不出有任何理由。除非一个downvoter留下至少简短的评论,这不是很有帮助。 – gorn 2012-05-18 16:07:39

回答

0

QValidator有一个名为“fixup()”的方法,这可能会做你想要什么:)

+0

我已经看到了这一个 - 但它只修复了内容,当输入按下,其次,它根本不工作在qtruby :-( – gorn 2010-07-27 11:04:02