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);
} |
Partager