2010-07-24 6 views
-1

J'essaie d'implémenter le texte de QLineEdit qui est en majuscules quel que soit le type d'utilisateur. J'ai trouvé plusieurs solutions, aucune d'entre elles ne fonctionnant en Ruby. En bref, j'ai QLineEdit objet searchEdit et ce code:Qt QLineEdit validation personnalisée en ruby ​​

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) 
... 

La méthode validate se déclenche correctement chaque fois que l'utilisateur tape dans le champ de saisie, mais il ne s'en majuscules. Il me semble que changer la variable d'entrée dans validate ne sera pas propagé à l'objet searchEdit.

Merci pour toute aide, même en me signalant de bons docs sur les fixations Qt Ruby.

+0

Désolé, je suis confus être le downwote que je ne vois aucune raison pour cela. Sauf si un downvoter laisse au moins un commentaire court, il n'est pas très utile. – gorn

Répondre

0

QValidator a une méthode appelée « fixup() », ce qui va probablement faire ce que vous voulez :)

+0

J'ai vu celui-ci - mais il ne fixe que le contenu lorsque l'entrée est pressée et d'autre part, cela ne fonctionne pas du tout qtruby :-( – gorn

Questions connexes