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 :

PyQt Disposition des éléments dans un QTextDocument


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    DAF
    Inscrit en
    Août 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : DAF
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2020
    Messages : 12
    Par défaut PyQt Disposition des éléments dans un QTextDocument
    Bonjour,

    j'aurais besoin d'aide pour un truc qui peut paraitre tout simple mais qui me fait bugger depuis un moment.

    Je veux construire un QTextDocument qui servira à être imprimé.

    Mon code donne:
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    class PrintSuiviFP(QPrintPreviewDialog):
        def __init__(self, parent, grid1, grid2, grid3, grid4, df1, df2, mois, annee):
            super().__init__()
            self.parent = parent
            self.grid1 = grid1
            self.grid2 = grid2
            self.grid3 = grid3
            self.grid4 = grid4
            self.mois = mois
            self.annee = annee
            self.df1 = df1
            self.df2 = df2
     
            self.dialog = QPrintPreviewDialog()
            self.document = QTextDocument()
            self.cursor = QTextCursor(self.document)
            self.block_format = self.cursor.blockFormat()
     
        def preview(self):
            self.dialog.setModal(True)
            self.dialog.paintRequested.connect(self._handle_paint_request)
            self.dialog.showMaximized()
            self.dialog.exec()
     
        def _handle_paint_request(self, printer):
            self.document.setDefaultFont(QFont('Calibri', 11))
            self.block_format.setAlignment(Qt.AlignmentFlag.AlignCenter)
            self.cursor.setBlockFormat(self.block_format)
     
            header_text = "TITRE"
            self.cursor.insertBlock()
            self.cursor.insertText(header_text, self._format_header())
            self.cursor.insertBlock()
            self.cursor.insertText(' ', self._format_header())
            self.cursor.insertBlock()
     
            self._build_left_block()  # construction de la partie gauche de mon QTextDocument
     
            self._build_right_block() # construction de la partie droite de mon QTextDocument
     
            printer.setPageOrientation(QPageLayout.Orientation.Landscape)
            self.document.setPageSize(QSizeF(1210, 800))
            self.document.setDocumentMargin(1)
            self.document.print(printer)
    Je vous passe le reste de la classe qui n'est pas utile ici et qui fonctionne bien.

    Je n'arrive pas à obtenir la disposition que je souhaite.
    Tel quel j'obtiens une disposition du type:
    Nom : sans block.png
Affichages : 193
Taille : 2,5 Ko

    Si dans mon code j'insère un self.cursor.insertblock() entre les deux lignes self._build_left_block() et self._build_right_block(), j'obtiens la disposition:
    Nom : avec block.png
Affichages : 194
Taille : 1,9 Ko

    Or ce que je veux obtenir c'est la disposition suivante:
    Nom : voulu.png
Affichages : 195
Taille : 1,7 Ko

    Bref vous l'aurez compris je cherche à mettre les deux blocks côte-à-côte et non pas dessus-dessous.
    Quelqu'un saurait-il comment je dois m'y prendre ou ce qu'il me manque pour arriver à ce que je souhaite?
    Je n'arrive pas à trouver mon bonheur dans mes recherches sur le net.

  2. #2
    Membre averti
    Homme Profil pro
    DAF
    Inscrit en
    Août 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : DAF
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2020
    Messages : 12
    Par défaut
    Bon pour ceux que ça pourrait intéresser j'ai résolu mon problème en le contournant en insérant une table à deux colonnes dans mon QTextDocument et en insérant un block dans chaque cellule de cette table.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2006, 11h53
  2. [Struts] ordre des éléments dans un tableau de propriétés
    Par zais_ethael dans le forum Struts 1
    Réponses: 2
    Dernier message: 09/05/2006, 15h54
  3. [C#] ordre des éléments dans un datagrid
    Par liliprog dans le forum ASP.NET
    Réponses: 3
    Dernier message: 19/09/2005, 16h31
  4. Supprimer des éléments dans une TreeView ?
    Par souch dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/09/2005, 12h20
  5. [swing] disposition des éléments dans un GridLayout
    Par al85 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 11/02/2005, 17h36

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