Bonjour tous le monde.
Je m'adresse à vous car je n'arrive pas à résoudre un problème.
Je dévellope sous Qt.
Mon problème est le suivant :
Je souhaite ajouter un Qwidget (un QtreeWidget) si une QChecBox est activée.
Pour cela, je capte le signal de la checkbox.
QObject::connect(check,SIGNAL(toggled(bool)),this,SLOT(displayTreeView()));
Ensuite, dans ma méthode, je crée un mon QtreeWidget si la checbox est activée et je le supprime sinon.
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
| void MainWindow::displayTreeView(){
if(check->isChecked()){
tree = new QTreeWidget();
tree->setHeaderHidden(true);
Vbox->addWidget(tree);
Hglfile * file;
QStringList listFilter;
listFilter << "*.zm";
listFilter << "*.th";
QDirIterator dirIt (currentDirectory,listFilter, QDir::Files | QDir::NoSymLinks, QDirIterator::Subdirectories);
// Tant qu'on n'est pas arrivé à la fin de l'arborescence...
while(dirIt.hasNext())
{
// ...on va au prochain fichier correspondant à notre filtre
dirIt.next();
file = new Hglfile(dirIt.filePath());
(*file).readData();
fileList.append(file);
}
displayTree();//méthode générant mes QTreeWidgetsItems
}
if(!(check->isChecked())){
Vbox->removeWidget(tree);
}
} |
J'ai fait ce code car je souhaite afficher mon arbre que si la Checbox est activée.
C'est pour ça que je le retire dans le cas ou il est décoché.
Dans le cas où la checbox est activée, le QtreeWidget est affiché, pas de problème. Et du coup ma fenêtre principale s'aggrandit pour recueillir le nouveau widget.
Mais quand je le décoche la checkbox, je voudrais que le TreeWidget soit effacé et que ma fenêtre se redimensionne comme si je n'avais pas créé ce widget.
Quelqu'un a une idée pour répondre à ce problème?
Merci d'avance.
Partager