Bonjour à tous voila mon problème je voudrai qu'un slot execute une fonction qui est opérationnel lorsque on l'execute comme fonction mais dès que c'est le slot qui l'execute la fonction ne réalise pas ce que je souhaite.
Plus précisement je souhaite lorsque l'on clique sur un bouton "ouvrir un nouvel onglet" qu'alors un nouvel onglet s'ouvre. Pour cela j'ai une fonction ouvrirOnglet qui ouvre un onglet et qui est opérationnel je men sers pour ouvrir les deux premiers onglet à l'execution du programme mais lorsque mon slot essaye d'executer cette fonction un onglet s'ouvre bien mais le contenue et celui de l'onglet deja ouvert et lorsque je modifie ce nouvel onglet c'est en fait l'autre qui est modifié.

Bon rien de mieux qu'un code alors voila mon code :
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
 
#include "FenPrincipale.h"
#include <QTranslator>
 
 
MainWindow::MainWindow() : QMainWindow()
{
	QMainWindow fenetre;
 
	//création du menu
	QMenu *menuFichier = menuBar()->addMenu(tr("&Fichier","menu fichier"));
	QMenu *menuNavigation = menuBar()->addMenu(tr("&Navigation","menu navigation"));
 
	//
	//Creation sub menu Fichier
	QAction *ouvrirUrl = menuFichier->addAction(tr("Ouvrir une URL"));
	QAction *Onglet = menuFichier->addAction(tr("Ouvrir un nouvel onglet"));
	QAction *ouvrirPage = menuFichier->addAction(tr("Ouvrir une nouvelle page"));
 
	//
	//Création sub menu navigation
	QAction *precedent = menuNavigation->addAction(tr("précédent"));
	QAction *suivant = menuNavigation->addAction(tr("suivant"));
	QAction *arreter = menuNavigation->addAction(tr("arrêter le chargement de la page"));
	QAction *actualiser = menuNavigation->addAction(tr("actualiser la page web"));
	precedent->setIcon(QIcon("./previous.png"));
	suivant->setIcon(QIcon("./next.png"));
	arreter->setIcon(QIcon("./stop.png"));
	actualiser->setIcon(QIcon("./actualiser.png"));
	//
	//
	//
	//Création Barre d'outil
	QToolBar *toolBar=addToolBar(tr("Navigation"));
	toolBar->addAction(precedent);
	toolBar->addAction(suivant);
	toolBar->addAction(arreter);
	toolBar->addAction(actualiser);
	url = new QLineEdit;
	toolBar->addWidget(url);
	//
	//
	//
	//Création Mdi
	onglet=new QMdiArea;
	acceuil=new QString("http://www.google.fr");
	ouvrirOnglet(acceuil);
	//this->ouvrirOnglet(acceuil);
	url->setText(pageActuelle()->url().toString());
 
	//
	//
	//
	//
	//Les connexions
	connect(precedent, SIGNAL(triggered()),this,SLOT(precedent()));
	connect(suivant, SIGNAL(triggered()), this,SLOT(suivant()));
	connect(arreter, SIGNAL(triggered()), this,SLOT(arreter()));
	connect(actualiser,SIGNAL(triggered()), this,SLOT(actualiser()));
	connect(url,SIGNAL(returnPressed()), this,SLOT(allerALaPage()));
 
/////////C'est ce SLOT précisement////////////////////////////////
 
	connect(Onglet,SIGNAL(triggered()), this,SLOT(nouvelOnglet()));
 
////////////////////////////////////////////////////////////////
 
	//connect(ouvrirPage,SIGNAL(triggered()), this,SLOT(nouvelFenetre()));	
	connect(onglet,SIGNAL(subWindowActivated(QMdiSubWindow *)),this,SLOT(changerUrl()));
	connect(onglet,SIGNAL(subWindowActivated(QMdiSubWindow *)),this,SLOT(changerTitre()));
	ouvrirAcceuil();
}
 
///////////////////////La fonction appelée par le SLOT
 
void MainWindow::ouvrirOnglet(QString *adresse)
{
	QWebView* web = new QWebView;
	QWidget *wWeb = new QWidget;
	QVBoxLayout *vLayout= new QVBoxLayout;
	vLayout->addWidget(web);
	wWeb->setLayout(vLayout);
	onglet->addSubWindow(wWeb);
	web->load(*adresse);
        onglet->setViewMode(QMdiArea::TabbedView);
        setCentralWidget(onglet);
	connect(web,SIGNAL(urlChanged(QUrl)), this,SLOT(changerUrl()));
        connect(web,SIGNAL(titleChanged(QString)), this,SLOT(changerTitre()));
 
}
 
/////////////////////////////////////////////////
 
QWebView *MainWindow::pageActuelle()
{
	return onglet->currentSubWindow()->widget()->findChild<QWebView *>();
}
 
void MainWindow::precedent()
{
	pageActuelle()->back();
}
 
void MainWindow::suivant()
{
	pageActuelle()->forward();
}
 
void MainWindow::arreter()
{
	pageActuelle()->stop();
}
 
void MainWindow::actualiser()
{
	pageActuelle()->reload();
}
 
void MainWindow::allerALaPage()
{
	pageActuelle()->load(url->text());
}
 
void MainWindow::changerUrl()
{
	url->setText(pageActuelle()->url().toString());
}
 
void MainWindow::changerTitre()
{
	onglet->currentSubWindow()->widget()->setWindowTitle(pageActuelle()->title());
}
 
////////////////////Voila la definition du slot
void MainWindow::nouvelOnglet()
{
	ouvrirOnglet(acceuil);	
}
///////////////////////////
 
void MainWindow::ouvrirAcceuil()
{
	ouvrirOnglet(acceuil);
}

Voila j'ai mis en évidence le probleme dans tout ce code j'espère qu'il ne vous découragera pas et merci d'avance.