IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Ajouter un item dans un tree


Sujet :

Qt

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 58
    Points
    58
    Par défaut Ajouter un item dans un tree
    Bonjour,
    En fait, je me suis basé sur l'exemple de Qt simpletreemodel et je désire ajouter un item dans mon tree comment dois je procéder.
    Etant donné que les données qui s'affiche dans mon tree est à partir d'une base de données SQLite.
    En fait lorsque je clique sur la barre de menu "nouveau", une fenêtre d'ajout d'un nouvel utilisateur apparait.Et lorsque je clique sur enregistrer, le nom du nouvel utilisateur doit tout d'abord apparaître dans le tree "treeview".
    Quelqu'un pourra m'aider ou me fournir des exemples des liens portant sur ce sujet.
    Merci

  2. #2
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 58
    Points
    58
    Par défaut
    Peut être que je dois procéder à changer mon treeview à treewidget afin d'utilser la méthode suivante :void insertTopLevelItem ( int index, QTreeWidgetItem * item )
    Y'a t il une autre soltion qui m'épargne de refaire mon travail (remplacer treeview par treewidget)?
    Merci

  3. #3
    Membre habitué Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Points : 171
    Points
    171
    Par défaut
    Salut

    Ce problème s'est présenté à moi il y a quelques semaines, et c'est pourquoi je vais te proposer une solution. En fait, l'objet QTreeView attends que tu lui passes en paramètre un model (regarde du côté de QDirModel par exemple), qui lui permettra de te créer une treeview directement.
    Après, tout dépend du besoin que tu as pour ta treeview. Si tu as besoin d'une treeview automatique, qui affichera des labels de dossiers/fichiers déjà existants sur ton disque, alors c'est cet objet QTreeView qu'il te faudra utiliser.

    Après, si tu as des besoins autres que celui-ci, ce que j'ai cru comprendre, c'est à dire construire et remplir ta treeview avec un fichier Xml ou alors par une connexion à une base de données, il te faut, comme tu y a pensé, utiliser l'objet QTreeWidget.

    Avec cet objet, il faut tout d'abord que tu lui donnes un premier Item, qui correspond au noeud de premier niveau de ta treeview. Il faut donc que tu crées un nouveau "QTreeWidgetItem" et qu'en paramètre du constructeur tu lui mettes comme parent ta treeview.

    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    QTreeWidgetItem * root = new QTreeWidgetItem(MonTreeWidget);

    Tu peux ensuite utiliser la méthode setText pour lui passer le texte que tu veux afficher dans la treeview.

    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    root->setText(0, "Texte à afficher");
    // Le 0 correspond à la colonne de la treeview dans lequel le texte s'affichera
    // Le 0 correspond généralement au nom, le 1 à la taille, etc etc.

    Ensuite c'est très simple, et c'est le même principe.
    Tu peux ajouter d'autres noeud de "premier niveau" sur le même principe, nouvel Item avec comme parent la treeview.

    Puis, pour ajouter des sous-noeuds à ta treeview, c'est aussi simple, à la seule différence que quand tu crées ton nouvel Item, tu lui passes un QtreeWidgetItem comme parent, au lieu de lui passer le QtreeWidget.
    Et ensuite tu crées tes descendances de la sorte


    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    QTreeWidgetItem * child = new QTreeWidgetItem(root); // par exemple

    J'espère que j'ai été assez clair, et que je ne t'ai pas plus embrouillé l'esprit

    Autre précision, même si tu n'en parles pas pour le moment, quand tu voudras récupérer un clic de souris utilisateur dans la treeview, moi j'ai utilisé le signal :

    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    void currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)

    Ce signal est déclenché depuis le QTreeWidget, pas depuis l'item, et ça fonctionne très bien Mais saches qu'il y a d'autres signaux, à toi de voir lequel te conviendra le mieux

Discussions similaires

  1. Ajouter un Item dans un DBLookupCombobox
    Par codial dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/03/2008, 17h18
  2. [C] Ajouter des items dans un menu en ressource
    Par Piano dans le forum Windows
    Réponses: 8
    Dernier message: 06/07/2007, 20h45
  3. [Question] Ajouter un item dans une ListBox
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 29/12/2005, 19h38
  4. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo