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

Qt Discussion :

Redimensionnement à l'aide d'un splitter de deux QGraphcisView


Sujet :

Qt

  1. #1
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Points : 8 140
    Points
    8 140
    Par défaut Redimensionnement à l'aide d'un splitter de deux QGraphcisView
    Bonjour à tous,

    J'ai un problème avec 2 graphics view et un splitter lors du redimensionnement, je vais essayer d'expliquer le problème le plus clairement possible

    J'ai 2 graphics view séparé par un splitter, je voudrais pour le fonctionnement que les éléments de la vue du haut soit tous positionné vers le bas et ceux de la vue du bas positionné vers le haut (voir image).

    Pour cela, les éléments sont repositionnés en ajoutant la hauteur de la scene au positionnement pour donner cette fonctionnalités.

    Le problème vient du redimensionnement avec le splitter, il agit correctement pour la vu du bas car les éléments sont bien positionnés (top, left), mais bien sur il cache trop tot les éléments de la vue du haut.



    Voici le code que j'utilise pour ce prototype :

    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
    47
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
     
        QWidget *widget = new QWidget();
        QHBoxLayout *layout = new QHBoxLayout(widget);
     
        // Top scene
        QGraphicsScene *topScene = new QGraphicsScene(0,0, 200, 200);
        QGraphicsRectItem *item1 = new QGraphicsRectItem(0, 0, 50, 50);
        topScene->addItem(item1);
        item1->setPos(0, 150);
     
        QGraphicsRectItem *item2 = new QGraphicsRectItem(0, 0, 50, 50);
        topScene->addItem(item2);
        item2->setPos(0, 100);
     
         // Bottom scene
        QGraphicsScene *bottomScene = new QGraphicsScene(0,0, 200, 200);
        QGraphicsRectItem *item3 = new QGraphicsRectItem(0, 0, 50, 50);
        bottomScene->addItem(item3);
        item3->setPos(0, 0);
     
        QGraphicsRectItem *item4 = new QGraphicsRectItem(0, 0, 50, 50);
        bottomScene->addItem(item4);
        item4->setPos(0, 50);
     
        QGraphicsView *topView = new QGraphicsView(topScene);
        topView->setAlignment(Qt::AlignLeft | Qt::AlignBottom);
        topView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
        QGraphicsView *bottomView = new QGraphicsView(bottomScene);
        bottomView->setAlignment(Qt::AlignLeft | Qt::AlignTop);
        bottomView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     
     
        QSplitter *splitter = new QSplitter(Qt::Vertical);
        splitter->addWidget(topView);
        splitter->addWidget(bottomView);
        splitter->setCollapsible(0, false);
        splitter->setCollapsible(1, false);
     
        layout->addWidget(splitter);
        widget->setFixedSize(300, 500);
        widget->show();
     
        return a.exec();
    }
    J'ai essayé différente chose comme la fonction centerOn à chaque resizeEvent mais ça créer d'autres problèmes sur d'autres fonctionnalités...
    Je crois avoir essayé le changement d'origine du repère mais je me rappel plus comment, etc.

    Si vous avez une idée pour faire fonctionner tout cela correctemment, elle sera plus que bienvenue.

    Images attachées Images attachées  

Discussions similaires

  1. [AC-2010] Besoin d'aide pour une condition entre deux formulaires
    Par spacesheep dans le forum IHM
    Réponses: 2
    Dernier message: 30/11/2011, 15h38
  2. Aide pour une requête sur deux tables
    Par Andry dans le forum Développement
    Réponses: 2
    Dernier message: 05/11/2007, 07h14
  3. Aide pour une requête sur deux tables
    Par Andry dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/11/2007, 07h14
  4. Réponses: 3
    Dernier message: 13/11/2005, 15h04

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