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 :

Separateur avec texte


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut Separateur avec texte
    Bonsoir,

    je voulais ajouter du texte à un séparateur d'un qmenu.

    Il se trouve que qtdesigner propose cela et que ça donne ce que je veux :


    mais lorsque je visualise le résultat (que ce soit via qtdesigner avec les différents styles ou via le lancement du logiciel) :


    J'ai bien vu ça :
    void QAction::setSeparator ( bool b )

    Si b est true alors l'action sera considérée comme un séparateur.

    La façon dont un séparateur est représenté dépend du widget dans lequel il est inséré. Dans la plupart des cas, le texte, le sous-menu et les icônes sont ignorés pour les actions séparateur.
    Si cela ne fonctionnait pas du tout, je comprendrais mais qtdesigner me laisse espérer :p

    Ce qui m’étonne, c'est la différence entre ce que montre qtdesigner et le résultat...

    Une idée d'un système de contournement si cela ne fonctionne pas ?


    EDIT : Il semblerait que ce soit en lien avec le style mais aucun ne fonctionne...

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    À partir du designer ça ne fonctionne pas. Si tu regardes le contenu du fichier .ui, tu verras que ton texte de séparateur n'est même pas conservé.

    Par contre, tu peux les créer séparément.

    Un exemple:
    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
    45
    46
     
    # -*- coding: utf-8 -*-
     
    from PyQt4 import QtCore, QtGui
     
    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.resize(800, 600)
            self.centralwidget = QtGui.QWidget(MainWindow)
            MainWindow.setCentralWidget(self.centralwidget)
            self.menubar = QtGui.QMenuBar(MainWindow)
            self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
            self.menuFiles = QtGui.QMenu(self.menubar)
            self.menuFiles.setTitle("Files")
            MainWindow.setMenuBar(self.menubar)
            self.statusbar = QtGui.QStatusBar(MainWindow)
            MainWindow.setStatusBar(self.statusbar)
            self.actionOpen = QtGui.QAction(MainWindow)
            self.actionOpen.setText("Open")
            self.actionSave = QtGui.QAction(MainWindow)
            self.actionSave.setText("Save")
            self.actionPrint = QtGui.QAction(MainWindow)
            self.actionPrint.setText("Print")
            self.menuFiles.addAction(self.actionOpen)
            self.menuFiles.addAction(self.actionSave)
            self.menuFiles.addAction(self.actionPrint)
            self.menubar.addAction(self.menuFiles.menuAction())
     
            self.set_title()
     
        def set_title(self):
            self.title_1 = self.menuFiles.insertSeparator(self.actionSave)
            font = QtGui.QFont()
            font.setBold(True)
            font.setWeight(75)
            self.title_1.setFont(font)
            self.title_1.setText("Titre 1")
     
    if __name__ == "__main__":
        import sys
        app = QtGui.QApplication(sys.argv)
        MainWindow = QtGui.QMainWindow()
        ui = Ui_MainWindow()
        ui.setupUi(MainWindow)
        MainWindow.show()
        sys.exit(app.exec_())
    Il faudra jouer sur la mise en forme du texte pour éviter q'un embryon de tirêt ne soit visible à droite du texte.

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je n'ai pas essayé, mais il existe pour le menu une méthode "setSeparatorsCollapsible(bool collapse)" avec un argument True par défaut, qui dit que les séparateurs successifs doivent être confondus. Et si on met False?

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Ben en général, on met False pour supprimer une disposition, ou un paramètre définit précédemment.

  5. #5
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    Merci VinS, j'avais pas vu que ca n'était pas sauvegardé...

    et j'ai testé avec qtdesigner v5 et c'est pareil.

    Pour le setSeparatorsCollapsible, c'est pratique dans le cas suivant :

    action 1
    --------
    action2
    --------
    action3

    Si je cache l'item "action2", le 1er séparateurs se cache aussi.
    Si je cache l'item "action3", le 2e séparateur se cache aussi

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

Discussions similaires

  1. Modification curseur avec texte entré dans 1 textfield
    Par taillooo dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/02/2006, 14h14
  2. alert avec text en arab
    Par le_prince dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/01/2006, 13h23
  3. Afficher un cadre(avec texte) à coté de la souris
    Par frechy dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/01/2006, 11h05
  4. [XML + XSL] petite confusion avec text()
    Par DidRocks dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 12/07/2005, 09h08
  5. Image avec texte à droite puis en dessous
    Par StarNab dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/05/2005, 17h25

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