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 :

[QMainWindow] Espace autour des éléments


Sujet :

PyQt Python

  1. #1
    Membre actif
    Femme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Par défaut [QMainWindow] Espace autour des éléments
    Hello,

    J'ai deux question a propos de la QMainWindow utilise avec pyQT4 .


    Par default QMainWindow me met des espaces entre chacun de mes dock widget et mon central widget, je cherche a les enlever ! J'ai essayer plusieur choses jusqu'a maintenant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Mainwindow = self
            Mainwindow.setContentsMargins(0,0,0,0)
    Ca marche... Mais seulment avec la marge sur les contour de la QMainWindow, pas les espaces entre les QDockWidget et la CentralWindow.
    J'ai aussi essaye de l'applique a ma central window (et dockwidget...) directement au lieux de l'apliquer a ma QMainWindow ... nope , ca ne fait rien du tout !


    Quand j'essai de l'apliquer a ma centralwindow...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    self.TheCentralWidget = Board(self)
        palette = QtGui.QPalette()
        palette.setBrush(QPalette.Background,QBrush(QPixmap("BoardBackGround.png")))
        self.TheCentralWidget.setPalette(palette)
        self.setCentralWidget(self.tboard)
        self.TheCentralWidget.setContentsMargins(0,0,0,0)


    J'ai lu ici et la que stylesheet pourrait etre une solution donc j'ai essaye...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      Mainwindow.setStyleSheet("margin:0px;")
    ou
    Mainwindow.setStyleSheet("border:1px solid rgb(0, 255, 0);")
    C'est clairement faux, ca fait quelque chose oui, effacer tous mes widgets de l'ecran ! Il n'y a plus de marge oui, mais il n'y a plus de widgets non plus !


    Dans la doc j'ai aussi trouver ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     bool QMainWindow.isSeparator (self, QPoint pos)
    Le nom ressemble a ce dont j'ai besoin et logiquement je l'ecrierais comme ca ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyQMainWindow.isSeparator (self, true)
    Mais non, ce n'est evidement pas la bonne fasson de l'utiliser et il n'y a pas la moindre description dans la doc et encore moins des exemples, je ne l'est meme pas trouve dans la doc C++ ... rien !



    Ma seconde question est plus simple :
    Je cherche a mettre une images en background de ma statusbar ...
    J'ai essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     self.statusbar = self.statusBar()
                self.tboard.msg2Statusbar[str].connect(self.statusbar.showMessage)
                #Set background Color
                BackgroundPalette = QtGui.QPalette()
                BackgroundPalette.setBrush(QPalette.Background,QBrush(QPixmap("MenuBare.png")))
                self.setAutoFillBackground(True)
                self.statusbar.setPalette(BackgroundPalette)

    Mais non, ca ne fait rien. J'ai utilise ce code pour mes autres widgets sans problems pour l'instant, la statusbare semble etre diferente...


    Merci ! Blob

  2. #2
    Expert confirmé

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

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

    Essaye comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    QMainWindow.setStyleSheet("""QMainWindow::separator{
                                width: 4px;
                                height: 4px;
                                }""")
     
    self.statusbar.setStyleSheet("""QStatusBar {
                                 background-image: url("MenuBare.png");
                                 }""")

  3. #3
    Membre actif
    Femme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Par défaut
    Merci, mais pour les separators, ça fait rien du tout ! (même pas une erreur, rien ! :/)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Mainwindow = self  
            Mainwindow.setStyleSheet("""Mainwindow::separator{
                                width: 0px;
                                height: 0px;
                                }""")
    Le background dans la statusbare fonctionne par contre.

  4. #4
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 306
    Par défaut
    Après s'être assuré que dans la mainWindow et dans le dockWidget il n'y a aucun layout dont les marges soient différentes de zéro j'obtiens bien un effet visible sur la largeur du séparateur.

    Mais le minimum obtenu sera toujours la largeur de la poignée de saisie, impossible, selon moi, à cacher. Même en fixant la largeur du dockWidget avec une sizePolicy (ce qui ne semble avoir aucun effet d'ailleurs)

    Dans les sources [0] le séparateur (la poignée) ne semble accessible que par des fonctions déclarées privées. Faudra s'en contenter, je pense.




    [0] https://qt.gitorious.org/qt/qt/sourc...mainwindow.cpp

  5. #5
    Membre actif
    Femme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2014
    Messages : 23
    Par défaut
    Je vois, c'est donc bien ces poignées que j'éssait de retirer sans succés ! Peut être est il possible de changer leur couleur et de les bloquer pour que l'utilisateur ne puisse pas redimentioner les fenêtres ?

Discussions similaires

  1. [Batch] Gérer les espaces des élèments via le boucle for
    Par Olivier Regnier dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 21/01/2013, 22h03
  2. [XHTML 1.0] Placer des éléments autour d'un autre
    Par Fr33dom dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 14/10/2010, 11h59
  3. jPanel, et positionnement des éléments autour
    Par knice dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 04/04/2009, 17h10
  4. Réponses: 3
    Dernier message: 26/01/2005, 15h21
  5. [TShellListView] Tri des éléments
    Par M.Dlb dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/12/2003, 22h35

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