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 :

Barre de défilement sur un QWidget [QtGui]


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Par défaut Barre de défilement sur un QWidget
    Bonjour,

    j'aimerai savoir comment faire pour mettre une scollbar vertical sur un QWidget.

    Merci

    Alaninho

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 180
    Par défaut QAbstractScrollArea
    Dans n'importe quel widget, tu peux ajouter une QScrollBar

    Toutefois, si le but recherché est d'avoir une région scrollable dans
    une fenêtre par exemple le mieux des d'ajouter à celle ci une
    QAbstractScrollArea dans laquelle tu placera les widgets qui t'intéressent.
    La méthode setVerticalScrollBar te permettra d'avoir ce que tu cherche.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 180
    Par défaut
    C'est encore moi,

    Il semblerait que QScrollArea soit plus précisément adapté à ce que tu veux
    faire.

    J'ai été trop vite pour répondre, désolé !

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Par défaut
    Oui, j'avais regarder, mais je sais pas du tout comment l'utilisé, aurais tu un exmaple? stp

  5. #5
    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
    Quelque chose comme ça:



    Uploaded with ImageShack.us[/IMG]


    Le code est ici:

    http://bazaar.launchpad.net/~vincent.../paqager/files

    c'est le fichier 'ui_subCategories.py'

    pour le tester, faudra que tu changes la ligne 368

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        ui.setupUi(subCategories, None)
    Bon t'auras pas les icônes mais tu peux aussi les remplacer par n'importe quoi.


    Edit: Le panneau gris est aussi une scrollArea, cliques sur 'Education'.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Par défaut
    j'ai réussi a mettre le widget dans le QScrollArea mais mon problème maintenant c'est que le widget ne grandit pas dans l'Area donc mais scrollbar serve rien.

    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
    from PyQt4.QtGui import *
    from PyQt4.QtCore import *
    import msa_input
    import layout_controller
     
    class Multi_msa_input(QWidget):
        #Create the Main Window input
        def __init__(self):
            super(Multi_msa_input, self).__init__()
            self.tab_msa=[]
            self.control=layout_controller.Layout_controller(self)
            self.msa_input=msa_input.Msa_input()
            self.button_submit=QPushButton('submit', self)
            self.button_plus=QPushButton('+algt',self)
            self.layout=QVBoxLayout()
            self.layout.addWidget(self.msa_input)
            self.layout.addWidget(self.button_submit)
            self.layout.addWidget(self.button_plus)
            self.connect(self.button_plus,SIGNAL('clicked()'), self.plus_msa)
            self.connect(self.msa_input.button_file,SIGNAL('clicked()'), lambda msa=self.msa_input: self.choose_file(msa))
            self.connect(self.msa_input.button_remove, SIGNAL('clicked()'), lambda msa=self.msa_input: self.clear(msa))
            self.connect(self.button_submit, SIGNAL('clicked()'), self.submit)
            self.setWindowTitle('MsaCompare')
            self.setLayout(self.layout)
            self.scrollArea=QScrollArea()
            self.scrollArea.setWidget(self)
            #self.scrollArea.setMaximumSize(QSize(500,450))
            self.scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
     
        #When you click on the button +aligt, you can to upload or copy/paste a new alignment
        def plus_msa(self):
            self.new_msa=msa_input.Msa_input()
            self.tab_msa.append(self.new_msa)
            self.layout.addWidget(self.new_msa)
            self.layout.addWidget(self.button_submit)
            self.layout.addWidget(self.button_plus)
            self.connect(self.new_msa.button_file,SIGNAL('clicked()'), lambda msa=self.new_msa: self.choose_file(msa))
            self.connect(self.new_msa.button_remove, SIGNAL('clicked()'), lambda msa=self.new_msa: self.clear(msa))
    Quand j'appuie sur le bouton +aligt, le widget doit grandir mais la il reste de la même taille dans le QScrollBar.

  7. #7
    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, il semble que ta scrollArea n'est placée nulle part.
    Elle n'est pas dans le layout et n'a pas de parent.
    Le parent n'est pas obligé mais Qt doit savoir ou placer ce widget.

    Dans la fonction plus_msa(self) tu ajoutes de nouveaux widgets dans le Layout définit plus haut mais pas dans la scrollArea, ce me semble.

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

Discussions similaires

  1. Comment mettre des barres de défilement sur un JTable
    Par canada_bea dans le forum Composants
    Réponses: 2
    Dernier message: 02/07/2009, 12h17
  2. défilement et barre de défilement sur image
    Par cd090580 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/11/2008, 16h14
  3. Barre de défilement sur une figure
    Par kabil.cpp dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 07/11/2008, 15h00
  4. Barres de défilement sur un état
    Par ver_for dans le forum IHM
    Réponses: 4
    Dernier message: 05/11/2007, 17h47
  5. Barres de défilement sur IFRAME
    Par Hibou57 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/07/2007, 11h29

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