IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

Est-iil possible de créer un Qvalidator ?


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut Est-iil possible de créer un Qvalidator ?
    bonjour, mon brouillon de code fonctionne correctement mais est t'il possible de créer un QValidator ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    class Caisse():
    	LIST_CAISSE = ("pièce de 1c", "pièce de 2c", "pièce de 5c", "pièce de 10c", "pièce de 20c", "pièce de 50c", "pièce de 1€", "pièce de 2€", "billet de 5€", "billet de 10€", "billet de 20€", "billet de 50€", "billet de 100€", "billet de 200€", "billet de 500€", "CB", "chèque")
     
    	def test(self, widget):
    		if not len(widget.text()):
    			widget.setStyleSheet("background-color: red")
    		else:
    			widget.setStyleSheet("background-color: white")
     
    	def __init__(self):
    		.
    		.
    		.
    		self.dict_caisse = {}
    		for i in Caisse.LIST_CAISSE:
    			self.caisse_layout.addWidget(QtWidgets.QLabel(text=i), Caisse.LIST_CAISSE.index(i), 0)
    			self.dict_caisse[i] = QtWidgets.QLineEdit()
    			self.dict_caisse[i].setText("0")
    			self.dict_caisse[i].textChanged.connect(functools.partial(self.test, self.dict_caisse[i] ))
    			self.dict_caisse[i].setValidator(QtGui.QIntValidator())
    			self.caisse_layout.addWidget(self.dict_caisse[i], Caisse.LIST_CAISSE.index(i), 1)
    d'ailleurs je me demande s'il vaut mieux utiliser Caisse.LIST_CAISSE ou self.LIST_CAISSE ?

    J'ai bien sur créé une fonction retournait juste True et fait setValidator(True) mais ça ne marche malheureusement pas pour moi comme tkinter
    J'imagine qu'il faut créer une classe héritant de Qvalidator ? .. mais après rien dans la doc, ni forum... aucun exemple sur Nullege en cherchant QValidator, QIntValidator, ect ...C'est limite je me demande si je ne suis pas le premier à me poser cette question ...

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Qu'est-ce qui ne fonctionne pas ? Valider quoi comme entiers, entre quelle intervalle ? Je n'ai pas vu dans ton post de précision sur ce que tu souhaitais faire, alors que c'est quand même la base d'une présentation de problème, avant le code.

    C'est limite je me demande si je ne suis pas le premier à me poser cette question
    Ce genre de réflexion est inutile, elle ne fera pas avancer ton problème... Si tu lis une documentation, et que tu l'appliques, ce que tu souhaiteras faire fonctionnera. En l'occurrence, créer un QValidator est tout à fait faisable !
    Je ne connais pas l'histoire de Tkinter, désolé je ne te suis pas dans tes conversations, est-il possible d'être plus précis ou dois-je perdre mon temps à lire toutes tes questions sur ce forum ? La possibilité de le faire sur Tkinter me semble plutôt acceptable.

    mais après rien dans la doc
    Pour chercher et trouver dans la documentation, il faut déjà la comprendre... que recherches-tu, que tu ne trouves pas ?

    aucun exemple sur Nullege en cherchant QValidator, QIntValidator, ect ...
    Je trouve par exemple un code où se trouve QValidator en deux secondes.

  3. #3
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    Je ne parlais pas d'utiliser des Qvalidator prédéfinit .. en faite en tkinter on a juste à créer une fonction qui retourne True ou False en fonction de nos critère et c'est tout ..
    J'ai finit par trouver : comment je pensait il fait bien créer une clase héritant de QValidator
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class customValidator(QtGui.QValidator):
     
    	def validate(self, text, pos):
    		if True:
    			return QtGui.QValidator.Acceptable, text, pos
    		else:
    			return QtGui.QValidator.Invalid, text, pos
    Suffit après de mettre des conditions...
    En faite je cherchait plus le fonctionnement général, dans mon cas je vais avoir besoins d'une validation pour des entier positif, des intervalles, et aussi des chaines de caractère en particulier.
    Par contre y'a t'il un moyen de passer d'autre argument que text et pos à CustomValidator ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Est-il possible de crer un raccourci vers un reperoire ???
    Par Florina dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 13/12/2005, 09h33
  2. Réponses: 5
    Dernier message: 07/11/2005, 11h11
  3. est il possible de créer dynamiquement une class ???
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 12/07/2005, 16h22
  4. Réponses: 3
    Dernier message: 07/04/2005, 15h04
  5. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo