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
| #include <QApplication>
#include <QMainWindow>
#include <QTabWidget>
#include <QHBoxLayout>
#include "tabClass"
Manag::Manag(QWidget *tab)
{
ShutdownG *shutdown=new ShutdownG(tab);
bouton=new QPushButton("bouton1-visible");
connect(bouton,SIGNAL(clicked()),this,SLOT(filtering()));
shutdown->readData();//pas de probleme
}
void Manag::filtering()
{
shutdown->readData();//va poser un pb dans readData...pourtant c'est le même appel que dans le constructeur!
}
ShutdownG::ShutdownG(QWidget *tab)
{
active=new QPushButton("bonton2-non visible c'est juste histoire d'ajouter un objet...");
b=new QPushButton("bonton3-non visible c'est juste pour histoire d'ajouter un objet...");
layout = new QVBoxLayout;
tab->setLayout(layout);
layout->addWidget(active);///pas de probleme(aucune erreur de segmentation ou autres visiblement
}
void ShutdownG::readData()
{
layout->addWidget(b);//erreur de segmentation uniquement si appelé via Manag::filtering() par l'intermediaire d'un slot.
}
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QTabWidget *tabs=new QTabWidget;//on créer un objet pour notre liste de tabs
QWidget *matab=new QWidget;//on créer une tab
Manag netmag(matab);//rempli tab
tabs->addTab(matab,"Tab");//on ajoute notre tab dans la liste des tabs
netmag.bouton->show();
return app.exec();
} |