CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Qt C++, communication entre 2 classes

Chocolayte
Chocolayte
Niveau 73
21 octobre 2013 à 14:18:39

Le titre est pas trop explicite mais j'ai un projet sous QtCreator.

Chocolayte
Chocolayte
Niveau 73
21 octobre 2013 à 14:21:09

Et je clique sur le bouton "Poster"... ahem. :noel: :(

Bref j'ai un MainWindow qui contient des QLineEdit, QComboBox et etc. J'voudrais faire une deuxième classe de manière à ce que :
- Mon Wainwindow instancie cette classe au lancement et puisse accéder à ses méthodes.
- Ma nouvelle classe puisse accéder aux éléments graphiques (QLineEdit etc) et à leur méthodes, à agir dessus.

Je ne viens pas en discuter l'intérêt mais la manière de procéder. J'ai toujours été un peu perdu en matière de euh... double instanciation, agrégation et tout le bazard. Comment faire une communication réciproque svp ?

Chocolayte
Chocolayte
Niveau 73
21 octobre 2013 à 14:48:45

Yolo. J'viens de retrouver dans mes cours la méthode d'une association double.
http://pastebin.com/u66byucg

Mais ça m'a toujours semblé un peu spécial. Ça pourrait le faire ? :doute:

Chocolayte
Chocolayte
Niveau 73
21 octobre 2013 à 19:27:12

Voilà ce que je veux : http://pastebin.com/VPpuC6i6 ^^

[denshaotoko]
[denshaotoko]
Niveau 25
21 octobre 2013 à 19:39:48

Si j'ai bien compris ce que tu veux faire, je pense qu'il s'agit d'utiliser de l'heritage, ou alors des classes/fonctions amis
http://cpp.developpez.com/faq/cpp/?page=friend

undrgrnd
undrgrnd
Niveau 9
21 octobre 2013 à 20:53:55

Dans ton exemple, les includes sont en plein milieu du code, je suis pas sûr que ce soit très joli joli...

vive_cod4
vive_cod4
Niveau 9
21 octobre 2013 à 21:40:32

Déjà je trouve bizarre que c'est ta mainWindow qui instancie les QLineEdit et companie en dehors d'un widget ...

Voilà comment je ferais :

- Un widget qui va contenir ta vue (QLineEdit et compagnie), avec comme paramètre "this" comme parent. Depuis cette classe de widget, avec getParent() (ou qqch comme ça) tu auras accès au mainWindow, bien que ce n'est pas ta question. Si tu le fais avec le designer, ces variables seront publics. Sinon tu fais un slot ou un get.

- Dans ton deuxième classe, tu passes de nouveau le this (pointeur sur ta classe mainwindow).

Donc actuellement mainWindow a accès aux méthodes publiques de ta deuxième classe et inversement.

Le cas 1 est réglé. Le cas 2, pour accéder aux widgets (QLineEdit,...) depuis ta classe il faut faire simplement un get qui va retourner un pointeur de ta vue, et comme dit précedemment, tu auras aucun problème à accéder aux éléments de la vue que tu aurais prédéfinies.

En passant il s'agit d'une association que tu souhaites faire.

Chocolayte
Chocolayte
Niveau 73
14 novembre 2013 à 20:11:47

J'tiens quand même à vous remercier, c'est la moindre des choses. :fier:
J'avais laissé tomber par découragement et j'avais tout rangé dans une grosse fonction, je tenterai ce week-end avec ces indications. :noel:

"Dans ton exemple, les includes sont en plein milieu du code, je suis pas sûr que ce soit très joli joli"

J'voulais pas poster trois pastebin, mais ça symbolisait trois fichiers différents. =)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment