Précédent   Forum du club des développeurs et IT Pro > C et C++ > Bibliothèques > Qt
Qt Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 30/12/2012, 11h24   #1
Maluna
Invité de passage
 
Inscription : décembre 2012
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 2
Points : 0
Points : 0
Par défaut Supprimer widgets d'un layout

Bonjour.

Je n'arrive pas à supprimer les QLabel d'un layout, ceux-ci restent et les suivants se superposent.
On m'a conseille la technique suivante :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
void clearLayout(QLayout *layout)
{
    QLayoutItem *item;
    while ((item = layout->takeAt(0)))
    {
        if (item->layout())
        {
            clearLayout(item->layout());
            delete item->layout();
        }
        delete item->widget();
        delete item;
    }
}
Le problème étant que le delete item->widget() supprime mon image complètement.
C'est quand même super bizarre qu'il faille détruire une image pour la supprimer d'un layout.

Comment faire ?

Merci.
Maluna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 17h33   #2
Phelim
Membre expérimenté
 
Homme
Inscription : août 2006
Messages : 316
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : août 2006
Messages : 316
Points : 507
Points : 507
Bonjour,

Pourquoi n'utilise tu pas la methode removeItem ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
void clearLayout(QLayout *layout)
{
    QLayoutItem *item;
    while ((item = layout->takeAt(0)))
    {
        if (item->layout())
        {
            clearLayout(item->layout());
        }
 
        layout -> removeItem(item);
        delete item;
    }
}
Phelim est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h11.


 
 
 
 
Partenaires

Hébergement Web