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

Discussion :

Copier-coller un item de QComboBox

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Par défaut Copier-coller un item de QComboBox
    Bonjour,

    J'ai dérivé la classe QComboBox afin de redéfinir le gestionnaire d'événement contextMenuEvent( QContextMenuEvent * event ). Maintenant, lorsque je clic droit avec ma souris je dispose d'un menu contextuel associé a la combobox, avec diverses QAction que j'ai défini (remplacer l'item sélectionné, le supprimer...).

    J'ai maintenant besoin d'une QAction pour copier l'item (un QString), afin de l'insérer/coller dans un autre QComboBox (quelconque) au clic de la souris (donc il me faut aussi une QAction "coller").

    Mais je ne sais pas comment implémenter les slots associés à ces deux QAction (copier et coller). Je suppose que j'ai besoin d'un buffer ? Vers quelles classes dois-je me tourner (la classe QMimeSource par exemple ?).

    Merci pour votre aide !

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Bonjour g3rous

    Il suffit d'utiliser la classe QClipboard :
    - tu as un objet static que tu récupères avec QApplication::clipboard()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const QClipboard *clipboard = QApplication::clipboard();
    - tu copies dans le clipboard avec la fonction setText() dans ton slot "copier" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clipboard->setText(ton_texte);
    - tu copies depuis le clipboard avec la fonction text() dans ton slot "coller" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QString ton_texte = clipboard->text();
    Regarde la doc de QClipboard : http://qt.developpez.com/doc/4.6/qclipboard/


    Petite question : pourquoi tu hérites de QComboxBox pour créer simplement un menu contextuel et plutôt que d'utiliser le signal QWidget::customContextMenuRequested() ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Par défaut
    Super ! Merci ca marche !

    Le signal que tu me proposes n'existe pas en qt3. Par ailleurs mon programme contient beaucoup d'attributs de type QComboBox appartenant à plusieurs classes ; utiliser ce signal dans chaque classe rendrait mon code redondant.

    Merci pour ton aide et l'exemple de code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajout des item copier/coller
    Par dumoulex dans le forum SWT/JFace
    Réponses: 6
    Dernier message: 29/04/2011, 10h24
  2. [Swing]copier coller... dans le menu.
    Par parksto dans le forum Composants
    Réponses: 3
    Dernier message: 10/05/2004, 22h56
  3. Copier coller Fichier windows
    Par KPitN dans le forum Windows
    Réponses: 8
    Dernier message: 20/04/2004, 17h32
  4. Copier Coller une ligne d'une table avec modif ?
    Par nolan76 dans le forum Requêtes
    Réponses: 4
    Dernier message: 04/03/2004, 16h34
  5. [Débutant] Conserver la couleur lors d'un copier coller
    Par ADIDASman dans le forum JBuilder
    Réponses: 2
    Dernier message: 21/05/2003, 18h13

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