Tordj
Messages postés34Date d'inscriptionmercredi 16 avril 2014StatutMembreDernière intervention17 août 2015
-
5 janv. 2015 à 20:09
Bonjour,
Dans le cadre du cours c++ sur le site du zéro j'essaye de développer une sorte de navigateur web.
Jusque là je n'avais pas de problème mais en testant mon programme j'ai découvert que certains de mes slots liés entre autre à ma barre d'état ne détectaient pas le changement d'onglet...
Dans mon cas les slots de la barre d'état ne sont appelé qu'avec l'onglet principal, mais pas avec les autres...
Voici ma fonction servant à créer l'onglet principal:
void FenPrincipale::creerOnglets()
{
layout = new QHBoxLayout(zoneCentrale);
onglets = new QTabWidget;
pagePrincipale = new QWidget;
layoutWeb = new QVBoxLayout;
page = new QWebView;
url = QUrl("http://google.fr/");
page->load(url);
layoutWeb->addWidget(page);
layoutWeb->setContentsMargins(0,0,0,0);
pagePrincipale->setLayout(layoutWeb);
onglets->addTab(pagePrincipale, url.host());
onglets->setTabsClosable(true);
connect(onglets, SIGNAL(tabCloseRequested(int)), this, SLOT(fermerOnglet()));
onglets->setTabShape(QTabWidget::Triangular);
layout->addWidget(onglets);
layout->setContentsMargins(0,0,0,0); //Supprime les marges, c'est + esthétique :).
}
Mon slot pour créer un nouvel onglet :
void FenPrincipale::nouvelOnglet()
{
newOnglet = new QWidget;
layoutNewWeb = new QVBoxLayout;
newPage = new QWebView;
newPage->load(QUrl(adresseUrl->text()));
layoutNewWeb->addWidget(newPage);
layoutNewWeb->setContentsMargins(0,0,0,0);
newOnglet->setLayout(layoutNewWeb);
int indexNewPage = onglets->addTab(newOnglet, url.host());//On ajoute la page à un nouvel onglet dont on mémorise la position (index).
onglets->setCurrentIndex(indexNewPage);//On va automatiquement sur le nouvel onglet
}
Le slot servant à identifier sur quel onglet on se trouve :
Ce dernier slot fonctionne lorsque l'on change d'onglet par un clic avec la souris.
En revanche lors de la création d'un nouvel onglet je passe automatiquement dessus, mais le slot n'est pas appelé...