Bonjour à tous,
Je refais mon message précédant car il n'était pas très clair et j'ai voulu simplifier des choses.
Voilà le sujet, je suis sous QtQuick, je veux faire quelque chose qui me permette de manipuler des signaux ( et des slots) dan le but de alterner des fenêtres.
J'ai donc 3 fichiers :
Fenetre1.qml
Fenetre2.qml
main.cpp
Fenetre 1 et 2 sont des fenêtres toutes simples avec chacune dans leurs code :
Pour la fenêtre 1 :
Dans la fenêtre 2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 signal fen1Sig(string msg) MouseArea { id: mouse_area1 anchors.fill: parent onClicked: item.fen1Sig("Go fenetre 2") }
Je ne vous met pas tout le code pour ne pas encombrer le sujet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 signal fen2Sig(string msg) MouseArea { id: mouse_area1 anchors.fill: parent onClicked: item.fen2Sig("Go fenetre 1") }
Et voici le main.cpp :
Le but pour le moment est donc de commencer sur la fenêtre 1 pour aller sur la 2. Malheuresement j'ai 4 erreurs :
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 #include <QtGui/QApplication> #include "qmlapplicationviewer.h" #include <QObject> class GestFen : public QObject{ public: GestFen(){ viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); viewer.setMainQmlFile(QLatin1String("qml/Test8/Fenetre1.qml")); viewer.showExpanded(); } QmlApplicationViewer getViewer(){ return(viewer); } public slots : void slotSwitchTo2(QString message){ viewer.setMainQmlFile(QLatin1String("qml/Test8/Fenetre2.qml")); viewer.showExpanded(); } void slotSwitchTo1(QString message){ viewer.setMainQmlFile(QLatin1String("qml/Test8/Fenetre1.qml")); viewer.showExpanded(); } private : QmlApplicationViewer viewer; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); GestFen fen; QObject::connect(*fen.getViewer(),SIGNAL(fen1Sig(QString)),*fen, SLOT(fen.slotSwitchTo2())); return app.exec(); }
c:\QtSDK\Simulator\Qt\mingw\include\QtDeclarative\qdeclarativeview.h:110: error: 'QDeclarativeView::QDeclarativeView(const QDeclarativeView&)' is privateC:\Users\aouizerate\Documents\Test\Test8-build-simulator-Simulator_Qt_for_MinGW_4_4__Qt_SDK__Debug\..\Test8\qmlapplicationviewer\qmlapplicationviewer.h:17: error: within this contextC:\Users\aouizerate\Documents\Test\Test8-build-simulator-Simulator_Qt_for_MinGW_4_4__Qt_SDK__Debug\..\Test8\main.cpp:43: error: no match for 'operator*' in '*GestFen::getViewer()()'Et j'ai la ligne du connect soulignée en rouge.C:\Users\aouizerate\Documents\Test\Test8-build-simulator-Simulator_Qt_for_MinGW_4_4__Qt_SDK__Debug\..\Test8\main.cpp:43: error: no match for 'operator*' in '*fen'
Voilà j’espère que je vous ai donné assez d'éléments pour pouvoir me répondre![]()
Partager