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 :

Comment intégrer une case à cocher dans une QTextDocument ? [QtGui]


Sujet :

PyQt Python

  1. #1
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 330
    Points : 207
    Points
    207
    Par défaut Comment intégrer une case à cocher dans une QTextDocument ?
    Bonjour à tous,

    Je cherche un moyen d'intégrer une checkbox (valeur booléenne) dans un QTextDocument.
    Existe t-il un autre moyen que d'insérer une image d'une coche ?
    Merci pour vos lumières.
    Cordialement,

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 195
    Points : 156
    Points
    156
    Par défaut
    Bonjour une des solutions peut être

    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
    23
    24
    25
    26
    27
    28
    29
     
    # -*- coding: utf-8 -*-
    import os
    from PyQt4 import QtGui, QtCore
     
    class testDoc(QtGui.QTextEdit):
      def __init__(self, parent=None):
        super(testDoc, self).__init__(parent)
        textDoc = QtGui.QTextDocument()
        checkOk = QtGui.QCheckBox('Est ce que ca vous couvient?')
        checkOk.setCheckState(QtCore.Qt.Checked)
        checkKo = QtGui.QCheckBox('vive python')
        #checkKo.setCheckState(QtCore.Qt.UnChecked)
     
        pixOk = QtGui.QPixmap().grabWidget(checkOk)
        pixKo = QtGui.QPixmap().grabWidget(checkKo)
        textDoc.addResource (2,QtCore.QUrl('pixOk'),pixOk)
        textDoc.addResource (2,QtCore.QUrl('pixKo'),pixKo)
        textDoc.setHtml("<img src=\"pixOk\"></img><br> <img src=\"pixKo\"></img> ")
        self.setDocument(textDoc)
     
     
    if __name__=='__main__':
      import sys
      app=QtGui.QApplication(sys.argv)
     
      fen = testDoc()
      fen.show()
      sys.exit(app.exec_())
    J'ai voulu utilisé initialement QPainter mais n'y suis pas parvenu (pas beaucoup de temps pour approfondir non plus )

  3. #3
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 330
    Points : 207
    Points
    207
    Par défaut
    Bonjour Nico,

    Ta solution est tip-top . Je l'ai un poil adapté comme çà :
    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
    23
    24
    25
    26
    27
    28
     
    # -*- coding: utf-8 -*-
    import os
    from PyQt4 import QtGui, QtCore
     
    class testDoc(QtGui.QTextEdit):
      def __init__(self, parent=None):
        super(testDoc, self).__init__(parent)
        textDoc = QtGui.QTextDocument()
        cursor = QtGui.QTextCursor(textDoc)
        checkOk = QtGui.QCheckBox()
        checkOk.setCheckState(QtCore.Qt.Checked)
        #pixOk = QtGui.QPixmap().grabWidget(checkOk)
        pixOkImg = QtGui.QPixmap().grabWidget(checkOk).toImage()
        pixOkImgFormat = QtGui.QTextImageFormat()
        pixOkImgFormat.setWidth(pixOkImg.width())
        pixOkImgFormat.setHeight(pixOkImg.height())
        pixOkImgFormat.setName('pixOkImg')
        textDoc.addResource (2, QtCore.QUrl('pixOkImg'), pixOkImg)
        cursor.addImage(pixOkImgFormat)
     
    if __name__=='__main__':
      import sys
      app=QtGui.QApplication(sys.argv)
     
      fen = testDoc()
      fen.show()
      sys.exit(app.exec_())
    L'insertion de l'image avec le 'cursor' donne toute la souplesse que je cherchais. Je peux ainsi intégrer la coche facilement dans une table en testant la valeur booléenne d'une variable ...

    Merci pour ton aide

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 195
    Points : 156
    Points
    156
    Par défaut
    super
    Initialement je n'avais pas de solution à ton problème (qui m’intéresse pour plus tard au cas où..).

    par contre en testant ton code, ceci en retour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AttributeError: 'QTextCursor' object has no attribute 'addImage'
    je suis sous PyQt 4.8.3

  5. #5
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 330
    Points : 207
    Points
    207
    Par défaut
    Bonjour,
    erreur de recopie ...
    il faut lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        cursor.insertImage(pixOkImgFormat)
    @+

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

Discussions similaires

  1. Ajouter une case à cocher dans une boite de dialogue
    Par wiwizz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/01/2012, 11h35
  2. case à cocher dans une case d'un tableau
    Par Msysteme dans le forum C#
    Réponses: 1
    Dernier message: 08/10/2011, 20h33
  3. Réponses: 2
    Dernier message: 31/03/2006, 16h48

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