Bonjour !

Alors voilà le souci que j'ai, je possède deux objets : une map marble et une vidéo d'une IP camera en rtsp. Ma vidéo prends les trois quarts de l'écran et en bas à droite en petit j'ai la map marble (qui est sensé à terme me servir de gps).
J'aimerais qu'au clic d'un bouton (qui se trouve actuellement juste au dessus de la map) les deux objets intervertissent leur place et leur taille.

Tout est disposé sur un grid layout et comme je suis un peu une bille en POO j'ai beaucoup (trop) de choses que je crée directement dans mon main et j'ai l'impression que ça rend mon code plus rigide... bref là n'est pas la question. Je ne sais absolument pas où et comment créer mon slot qui me permettra d'intervertir les deux objets.. >< Voilà mon main :

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
48
49
50
51
52
53
54
#include <QApplication>
#include <QWidget>
#include "mafenetre.h"
#include <marble/MarbleWidget.h>
#include <marble/AbstractFloatItem.h>
#include <marble/PluginInterface.h>
#include <marble/MarbleGlobal.h>
#include <QGridLayout>
#include <QFont>
#include <QSplitter>
using namespace Marble;
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
//-------------------------*** MARBLE ***-----------------------------//
    // On crée le widget Marble via openstreet map
    MarbleWidget *mapWidget = new MarbleWidget;
    mapWidget->setProjection(Mercator);
    mapWidget->setMapThemeId("earth/openstreetmap/openstreetmap.dgml");
    mapWidget->setWindowTitle("Test!");
    mapWidget->setShowOverviewMap(false);
    mapWidget->setShowScaleBar(false);
    foreach (AbstractFloatItem * floatItem, mapWidget->floatItems())
        if (floatItem && floatItem->nameId()=="compass")
        {
            //Put the compass onto the left hans side
            floatItem->setPosition( QPoint(10,10));
            //Make the content size of the compass smaller
            floatItem->setContentSize(QSize(8,8));
        }
    mapWidget->centerOn(GeoDataCoordinates(2.309330, 48.9410519, 0, GeoDataCoordinates::Degree));
    mapWidget->zoomView(3000);
//-------------------------------------------------------------------------------------------------------------------------
    QWidget fenprincip;
    MaFenetre *video= new MaFenetre;//(&fenprincip); le =New MaFenetre est là pour déclarer video en tant que widget pour le layout
    // Création du Layout Grid :
    QGridLayout *layout = new QGridLayout();
    QPushButton *switch_bouton = new QPushButton("Switch");
    switch_bouton->setFont(QFont("Comic Sans MS", 14));
    //Le redimensionnement auto ne marche pas sans trop de raison on va tenter avec une simple grille*/
    for(int i=0;i<12;i++){
        layout->setColumnStretch(i,1);
    }
   //On ajoute les widget à la grille
    layout->addWidget(video, 0,0,17,10);
    layout->addWidget(mapWidget,16,10,3,3);
    layout->addWidget(switch_bouton,15,10,1,3);
    // Connexion du clic du bouton à la fermeture de l'application
    QObject::connect(switch_bouton, SIGNAL(clicked()), mapWidget, SLOT(switcher()));
    fenprincip.setLayout(layout);//On indique à la fenetre d'utiliser le layout grid
    //fenprincip.setLayout(layoutSplitter);
    fenprincip.show();
    return app.exec();
}
Merci d'avance pour l'aide que vous pourriez m'apporter