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 :

Assigner une action à un QStandardItem?


Sujet :

Qt

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut Assigner une action à un QStandardItem?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    QStandardItemModel *modele = new QStandardItemModel;
     
        QStandardItem *item = new QStandardItem("John Deuf");
        modele->appendRow(item);
        item->appendRow(new QStandardItem("17 ans"));
     
        QTreeView *vue = new QTreeView;
        vue->setModel(modele);
    Comment pourrais je assigner une action à item du modèle du treeview qui me permet lorsque je clique sur un item d'afficher son widget approprié ?

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	QItemSelectionModel *selection = console->ui.treeView->selectionModel();
    	QModelIndex indexElementSelectionne = selection->currentIndex();
    	QVariant elementSelectionne = console->modele->data(indexElementSelectionne,
    			Qt::DisplayRole);
    	if (elementSelectionne.toString() == GetNameModule()) {
    		}
    }
    Comment pourrais je assigner le slot InsertWidgetModule () qui insère le widget approprié à la selection du modele étant donné que j'utilise pour le moment un listView?

  3. #3
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    http://qt.developpez.com/doc/4.5/qab...mview/#signals

    "InsertWidgetModule" est un slot à toi ? A quoi veux-tu l'associer ? Quel évènement graphique ?
    Avec le lien que je t'ai donné tu peux voir différents signaux de ta QListView.

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void ClamavView::ShowModuleWidget() {
    	QItemSelectionModel *selection = console->ui.treeView->selectionModel();
    	QModelIndex indexElementSelectionne = selection->currentIndex();
    	QVariant elementSelectionne = console->modele->data(
    			indexElementSelectionne, Qt::DisplayRole);
    	//	QMessageBox::information(this, "Titre de la fenêtre",
    	//			"Bonjour et bienvenue à tous les Zéros !");
    	if (elementSelectionne.toString() == GetNameModule()) {
    				QAction *action = new QAction(this->GetNameModule(), console);
    				selection->connect(action, SIGNAL(clicked()), this, SLOT(InsertWidgetModule()));
    	}
    }
    J'ai essayé avec ce code ci-dessus mais je ne sais pas est ce ce j'ai écrit est juste ou non puisque je ne parviens pas à attribuer cette méthode à console->ui.treeView puisque mon application est bâtit sur une architecture à plugins qui les charge lors de l'exécution de l'application.

  5. #5
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    Citation Envoyé par maroua_mm Voir le message
    je ne parviens pas à attribuer cette méthode à console->ui.treeView puisque mon application est bâtit sur une architecture à plugins qui les charge lors de l'exécution de l'application.
    Qu'est-ce que tu veux dire par attribuer la méthode ? On connecte un slot à un signal, il faut donc d'un côté une fonction qui détecte l'évènement voulu (le signal), et de l'autre une fonction qui exécute le traitement associé à cet évènement (le slot). Sois plus clair car je ne comprends pas du tout de quoi tu parles.

  6. #6
    Invité de passage
    Profil pro
    Inscrit en
    Août 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2009
    Messages : 1
    Par défaut eclaicissements svp?
    je me trompe ou le signal doit être une méthode de l'émetteur?
    une QAction n'émet pas de signal clicked me semble t'il (trigerred à la limte)
    selection->connect(action, SIGNAL(clicked()), this,SLOT(InsertWidgetModule()));

    Ce qui est utile quand une connection ne fonctionne pas c'est d'executer en mode console l'application. on peut y voir des messages Qt qui donnent des infos.

    afficher quelque chose sur le click d'un item?..... pourquoi ne pas créer un éditeur qui fait ça? QItemDelegate::createeditor

Discussions similaires

  1. Problème pour assigner une action à un JButton
    Par Knluz dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 01/06/2015, 19h12
  2. Assigner une action à un bouton aléatoire
    Par alex777771 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 09/02/2012, 16h35
  3. [VB6] Assigner une action à une région de la Form
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 15/05/2006, 11h51
  4. [STRUTS][DOWNLOAD] download d'un fichier via une action
    Par FreshVic dans le forum Struts 1
    Réponses: 3
    Dernier message: 16/04/2004, 16h38
  5. [débutant]Faire appel à une action d'une ActionList
    Par petitours dans le forum C++Builder
    Réponses: 6
    Dernier message: 12/03/2004, 22h53

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