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

C++ Discussion :

ui <no such value>


Sujet :

C++

  1. #1
    Membre confirm�
    Homme Profil pro
    programmation
    Inscrit en
    Janvier 2020
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : programmation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 69
    Par d�faut ui <no such value>
    bonjour
    je suis en train de cr�e mon premier projet avec deux classe qui doive communiquer l'une avec l'autre et l'autre avec l'une de cette fa�on : client affiche des message dans userInterface et userInterface fourni au client des information tel que le clique sur un bouton est le contenus de certaine boite.
    pour faire ca j'ai d�fini dans le cpp de client ces deux ligne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    #include "userinterface.h"
    userinterface *ui;
    et dans celui de userInterface
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    #include "clients.h"
    clients *client;
    je me pred aucune erreur jusqu'au moment de la compilation ou lorsque je clique sur un bouton il se passe ca :
    Nom : Capture d��cran 2021-10-16 170025.png
Affichages : 215
Taille : 20,5 Ko
    pour avoir cette erreur la classe userInterface lance au moment ou le bonton est presser la fonction connectTo dans client le client va ensuite aficher un texte dans userInterface en passent par la fonction qui ne fonctionne pas
    voila a mon avis l'erreur vien de moi mais je ne sait pas comment je suis sens� la r�soudre
    merci d'avance

  2. #2
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Donc pour d�finir 1 m�thode userinterface::displayMessage, tu utilises 1 variable globale ui du m�me type ?

    Soit il te manque des notions en programmation objet soit il manque des include pour chopper ta variable globale (mais cela sent les inclusions infinies)

  3. #3
    Membre confirm�
    Homme Profil pro
    programmation
    Inscrit en
    Janvier 2020
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : programmation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 69
    Par d�faut
    bonjour
    au d�but je voulais faire que 1 h�rite de 2 et que 2 h�rite de 1 mais ca ne peut pas marcher a cause des inclusion circulaire j'avais trouver ca en recherchant mais ducoup ca marche pas comment je suis sens� faire ?

  4. #4
    Membre Expert
    Avatar de skeud
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par d�faut
    Il faudrait que tu en montres un peu plus pour qu'on t'aide. Tu as un pointeur ui, tu l'as initialis� quelquepart?

  5. #5
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Citation Envoy� par skeud Voir le message
    Il faudrait que tu en montres un peu plus pour qu'on t'aide. Tu as un pointeur ui, tu l'as initialis� quelquepart?
    Pas besoin

    ui est 1 variable globale n�cessaire pour Qt, et qui regroupe tous les �l�ments de sa fen�tre.
    Apr�s je ne suis pas expert en Qt, je peux me tromper ... c'est pour cela que j'attendais qu'1 d�veloppeur qui connaisse Qt r�ponde.
    Donc, tu ne dois pas utiliser cette variable pour d�finir ta classe. D'ailleurs, cela ne se fait jamais de d�finir des classes/ fonctions/ proc�dures avec 1 variable globale ... � moins d'1 besoin ultra sp�cifique.

    C'est pour cela que je disais "il te manque des notions en programmation objet" pour d�finir la m�thode XXX::do_work tu n'as pas besoin de cr�er 1 variable de type XXX

  6. #6
    Membre confirm�
    Homme Profil pro
    programmation
    Inscrit en
    Janvier 2020
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : programmation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 69
    Par d�faut
    bonjour,
    je m'explique j'ai deux classe : une pour g�r� l'interface et une autre pour g�rer une autre classe (un client de serveur) mais le client doit pouvoir interagir avec la classe interface (faire appel a des fonctions) et il faut que la classe d'interface puisse interagir avec la classe client. pour ca je m'�tait dans client.cpp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    #include "userinterface.h"
    userinterface *ui;
    et dans userinterface.cpp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    #include "clients.h"
    clients *client;
    voila je faisait ca pour �viter une inclusion infini.
    je ne sait pas si j'ai mal organiser mon code mais je ne sait pas comment faire pour que deux classe puisse interagir entre elle...
    pouvez vous m'�clairer ou il vous faut du code ?

  7. #7
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Citation Envoy� par eneediorio Voir le message
    je ne sait pas comment faire pour que deux classe puisse interagir entre elle...
    Je le redis "il te manque des notions en programmation objet"

    On peut utiliser l'injection de d�pendance (<- lien wikipedia succinct en fran�ais), l'amiti� (mot clef friend), ...

    Mais il faudrait voir ton code, mais cela sent mauvais. Le client c'est le contr�leur et la variable ui c'est la vue (je peux me tromper, je ne suis pas expert en Qt) donc tu sembles �tre entrain de coder 1 MVC (<- Est-ce �tonnant en codant 1 IHM avec Qt )

    Donc voila, tu n'as pas besoin de tes variables globales. Renseigne toi avec

  8. #8
    Membre Expert
    Avatar de skeud
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par foetus Voir le message
    Pas besoin
    Pas besoin d'initialiser un pointeur? C'est bien la premi�re fois qu'on me sort �a.

    Le message d'erreur inqiquerait que le pointeur n'est pas initialiser (donc plantage lors de l'execution).

    Toi tu fais r�f�rence � la variable membre "ui" qui est cr�� lorsque tu utilises QtDesigneur, or la �a n'a rien � voir comme ui est un pointeur sur une classe qu'il a lui-m�me fait.


    Donc je r�it�re, il va falloir montrer plus de code pour qu'on sache vraiment le probl�me,et ce que tu as voulu faire, car en l'�tat on a l'impression que tu as des variables globales qui ne sont pas initialis�es

  9. #9
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Citation Envoy� par skeud Voir le message
    Pas besoin d'initialiser un pointeur? C'est bien la premi�re fois qu'on me sort �a.
    Ton commentaire est � c�t� de la plaque �videment que le pointeur est non initialis� et j'ai dit "soit il manque des include pour chopper ta variable globale (mais cela sent les inclusions infinies)"

    Mais lisez le tutorial de Qt
    Using a Designer UI File in Your C++ Application (<- lien officiel en anglais)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class CalculatorForm : public QWidget
    {
        Q_OBJECT
     
    /* */
     
    private:
        Ui::CalculatorForm ui;
    };
    Ton ui n'est pas 1 variable globale, c'est 1 membre/ attribut (<- Est-ce �tonnant en codant 1 MVC).
    En essayant de r�soudre le pointeur non initialis�, tu r�sous le mauvais probl�me.

    Le P.O. ne semble n'avoir jamais fait de programmation IHM : "il lui manque des notions en programmation objet"


    �dit : c'est bizarre, tout cela c'est du code g�n�r� Qt et donc tu n'as pas besoin de modifier la "structure du projet".
    C'est bizarre "no such value" alors que c'est 1 code g�n�r� ... mais je ne suis pas expert Qt

  10. #10
    Membre confirm�
    Homme Profil pro
    programmation
    Inscrit en
    Janvier 2020
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : programmation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 69
    Par d�faut
    bonjour
    la variable ui pointe juste vers la classe user interface il est d�fini dans client.cpp il ne pointe en aucun cas vers le vrais ui.
    mais je vais me r�signer sur l' Injection de d�pendances. si vous avez des tips je suis ouvert

  11. #11
    Membre Expert
    Avatar de skeud
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par foetus Voir le message
    Ton ui n'est pas 1 variable globale, c'est 1 membre/ attribut (<- Est-ce �tonnant en codant 1 MVC).
    En essayant de r�soudre le pointeur non initialis�, tu r�sous le mauvais probl�me.

    Le P.O. ne semble n'avoir jamais fait de programmation IHM : "il lui manque des notions en programmation objet"


    �dit : c'est bizarre, tout cela c'est du code g�n�r� Qt et donc tu n'as pas besoin de modifier la "structure du projet".
    C'est bizarre "no such value" alors que c'est 1 code g�n�r� ... mais je ne suis pas expert Qt
    Normal que �a te semble bizarre, ce n'est pas parceque la varibale s'appelle ui que �a provient du code g�n�r� par Qt. Relis bien le code et tu verras que ce n'est pas du code g�n�r�.bref.

    Voil� une piste pour les d�pendance multiple:

    A.h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class B;
     
    class A
    {
    public:
      void setB(B* ptr) { m_ptrToB = ptr;}
      void fonctionQuiFaitAppelleAB();
    private:
      B* m_ptrToB = nullptr;
    }
    A.cpp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include "A.h"
    #include "B.h"
     
    A::A()
    {
    }
     
    void A::fonctionQuiFaitAppelleAB()
    {
      m_ptrToB->appelle();
    }
    B.h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class A;
     
    class B
    {
    public:
      void setA(A* ptr) { m_ptrToA = ptr;}
      void fonctionQuiFaitAppelleAA();
    private:
      A* m_ptrToA = nullptr;
    }
    B.cpp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include "B.h"
    #include "A.h"
     
    B::B()
    {
    }
     
    void B::fonctionQuiFaitAppelleAA()
    {
      m_ptrToA->appelle();
    }
    �a s'appelle la forward declaration. En gros via :
    Tu indique au compilo qu'une class A existe et que tu la d�finira plus tard (dans le cpp en l'occurence). Cel� fonctionne � condition que dans le .h tu n'utilise qu'un pointeur et aucune des fonctions de B (pour �a il faut attendre qu'elle soit d�clar�e et donc dans le cpp)

  12. #12
    Membre confirm�
    Homme Profil pro
    programmation
    Inscrit en
    Janvier 2020
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : programmation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 69
    Par d�faut
    bonjour,
    j'ai essay� les info de skeud
    Voil� une piste pour les d�pendance multiple:...
    mais il y a ces probl�mes la : Nom : Capture d��cran 2021-10-21 225501.png
Affichages : 147
Taille : 106,3 Ko
    mon code :
    client .h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
        void setB(userinterface* ptr) { m_ptrToUserinterface = ptr;}
        void fonctionQuiFaitAppelleAUserinterface();
    private:
        userinterface* m_ptrToUserinterface = nullptr;
    client.cpp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    void clients::fonctionQuiFaitAppelleAUserinterface()
    {
      m_ptrToUserinterface->displayMessagelist("hello word");
    }
    userinterface.h

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    public:
        void setA(clients* ptr) { m_ptrToClients = ptr;}
        void fonctionQuiFaitAppelleAClients();
    private:
        clients* m_ptrToClients = nullptr;
    userinterface.cpp

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    void userinterface::on_conectbuton_clicked()
    {
        m_ptrToClients->fonctionQuiFaitAppelleAUserinterface();
    }
    j'ai fait une erreur ?

  13. #13
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Citation Envoy� par eneediorio Voir le message
    j'ai fait une erreur ?
    Tu es s�rieux ?

    Ton pointeur est NULL parce qu'il est initialis� mais jamais configur� avec le mutateur ("setter" en anglais) void setB(userinterface* ptr) { m_ptrToUserinterface = ptr;}.

    Lis les tutoriaux Qt, MVC par exemple ... pour savoir comment faire le lien entre la vue <-> le contr�leur <-> la couche de donn�es

  14. #14
    Membre confirm�
    Homme Profil pro
    programmation
    Inscrit en
    Janvier 2020
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : programmation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 69
    Par d�faut
    void setB(userinterface* ptr) { m_ptrToUserinterface = ptr;}
    je lai mis dans
    client .h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
        void setB(userinterface* ptr) { m_ptrToUserinterface = ptr;}
        void fonctionQuiFaitAppelleAUserinterface();
    private:
        userinterface* m_ptrToUserinterface = nullptr;
    si je le met dans le cpp j'ai une erreur que faut il faire ?
    Lis les tutoriaux Qt, MVC par exemple ... pour savoir comment faire le lien entre la vue <-> le contr�leur <-> la couche de donn�es
    ok je vais faire ca

  15. #15
    Membre confirm�
    Homme Profil pro
    programmation
    Inscrit en
    Janvier 2020
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : programmation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 69
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Lis les tutoriaux Qt, MVC par exemple ... pour savoir comment faire le lien entre la vue <-> le contrôleur <-> la couche de données
    bon j'en ai lue plein est je comprend jamais vous pouvez me sugg�rer s'il vous plais

Discussions similaires

  1. QImage <no such value>
    Par Momoth dans le forum D�buter
    R�ponses: 4
    Dernier message: 30/10/2014, 16h56
  2. Calcul du plu court chemin entre 2 sommets d'un graphe valu�
    Par atlasm dans le forum Algorithmes et structures de donn�es
    R�ponses: 25
    Dernier message: 07/08/2005, 17h06
  3. [MFC]Value Controle dans un comboBox
    Par jul54 dans le forum MFC
    R�ponses: 6
    Dernier message: 10/02/2004, 09h57
  4. R�ponses: 4
    Dernier message: 18/11/2003, 16h08
  5. [VBA-E] avec une fonction value
    Par laas dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 28/11/2002, 13h22

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