Publicité
+ Répondre à la discussion
Page 2 sur 2 PremièrePremière 12
Affichage des résultats 21 à 31 sur 31
  1. #21
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    C'est de nouveau moi

    Voilà, je sèche sur un problème de test de démarrage.
    Je souhaiterais appeler une fenêtre de dialog directement dans mon wxApp, pour que l'utilisateur se connecte et s'il échoue, la fenêtre principale ne s'affichera pas. A priori je ne peux pas appeler ma boite de dialogue pour le login a partir de mon wxApp dans ma fonction OnInit, donc je ne vois pas trop comment lui faire passer le test.

  2. #22
    Membre confirmé Avatar de wxXav
    Homme Profil pro Xavier Perrissoud
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    145
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Perrissoud
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 145
    Points : 228
    Points
    228

    Par défaut

    Salut.

    Citation Envoyé par MarcusDom Voir le message
    A priori je ne peux pas appeler ma boite de dialogue pour le login a partir de mon wxApp dans ma fonction OnInit
    Pourquoi ? Je viens de faire le test avec wx2.8 et wx2.9, et ça marche sans problème.
    • Tu crées une classe dérivée de wxDialog
    • Dans le OnInit, tu en crées une instance et tu l'affiche avec ShowModal
    • Suivant le résultat de ShowModal, tu continues ou non (return false depuis le OnInit)


    @+
    Xav'

  3. #23
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Lorsque je créé une instance il m'affiche :

    erreur : no matching function for call to 'login::login(LysisTimerApp* const).

    Voilà mon appel :
    Code :
    1
    2
     
    login *boiteLogin = new login(this);
    J'ai bien inclu mon fichier .h de la classe login dans le cpp du App et comme argument il prend la fenêtre parent, ca doit être là qu'est le problème, mais je ne comprend pas.

    Fichier login.cpp :

    Code :
    1
    2
    3
    4
    5
    6
    7
     
     
    login::login(wxWindow *ParentWindow)
      :wxDialog(ParentWindow, wxID_ANY, _("Fenêtre de connexion"))
    {
      createControls();
    }

  4. #24
    Membre confirmé Avatar de wxXav
    Homme Profil pro Xavier Perrissoud
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    145
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Perrissoud
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 145
    Points : 228
    Points
    228

    Par défaut

    C'est normal : comme tu n'as pas encore créé de fenêtre, ta boite de dialogue ne peut pas avoir de parent.

    De plus, tu utilises new/delete alors que c'est inutile ici.
    Je ferais plutôt quelque chose comme ceci :

    Code :
    1
    2
    3
    4
    5
    6
    7
     
    // Variable "normale", et non pointeur
    // Ainsi, pas besoin de se soucier de sa destruction...
    login boiteLogin(NULL);
    ......
    if (boiteLogin.ShowModal()==wxID_CANCEL) return false;
    ......
    Si tu tiens vraiment à utiliser new/delete, il faut que tu remplaces "this" par "NULL".

    @+
    Xav'

  5. #25
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Merci Xav, j'avais pas saisi cette information, c'est bon

    Au fait si c'est toi "Xaviou" qui à fait les tutos sur les wxwidgets, je te tire mon chapeau, ca m'a bien aidé

    Une question subsidiaire :

    Lors du redimensionnement de ma Frame, j'ai un sizer qui a un comportement "normal" lors du redimensionnement vertical, mais lorsque je le fait horizontalement, mes objets ( static text, textctrl et barre d'icones, restent à la même taille et "sortent" de leur staticboxsizer.
    Ca pourrait être dû à quoi ?
    Merci encore

  6. #26
    Membre confirmé Avatar de wxXav
    Homme Profil pro Xavier Perrissoud
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    145
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Perrissoud
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 145
    Points : 228
    Points
    228

    Par défaut

    Citation Envoyé par MarcusDom Voir le message
    Au fait si c'est toi "Xaviou" qui à fait les tutos sur les wxwidgets, je te tire mon chapeau, ca m'a bien aidé
    Oui, c'est bien moi. Merci pour le compliment...

    Citation Envoyé par MarcusDom Voir le message
    Lors du redimensionnement de ma Frame, j'ai un sizer qui a un comportement "normal" lors du redimensionnement vertical, mais lorsque je le fait horizontalement, mes objets ( static text, textctrl et barre d'icones, restent à la même taille et "sortent" de leur staticboxsizer.
    Ca pourrait être dû à quoi ?
    Cela est dû à plusieurs choses.
    Tout d'abord, il y a les paramètres "proportion" et "flag" utilisés lors de l'ajout du contrôle au sizer.
    Certaines valeurs (ou combinaisons de valeurs) de ces paramètres indiquent clairement au sizer de ne ma redimensionner le contrôle.
    Mais même dans le cas où ces paramètres sont corrects, il y a encore à prendre en compte la taille minimale de chaque contrôle.
    Par exemple, si tu crées un wxPanel en lui donnant une taille fixe, et qu'ensuite tu l'ajoutes à un sizer avec des paramètres permettant son redimensionnement, la taille que tu lui a donné lors de sa construction devient sa taille minimale, et il ne descendra pas en dessous, même si le contrôle parent est plus petit.
    Il y a un truc intéressant à utiliser, c'est wxSizer::SetSizeHints, qui permet de calculer la taille minimale que peut prendre le sizer et de ce fait, interdire que la fenêtre devienne trop petite.

    Je ne sais pas si j'ai été assez clair dans mes explications : si ce n'est pas le cas, n'hésite pas à demander.

    @+
    Xav'

  7. #27
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Ca va je m'y retrouve

    Evidemment j'ai défini une taille minimale, mais trop basse, je vais revoir ca à la hausse.

    J'ai encore d'autre soucis (oui, j'en ai plein...), j'ai fait un test pour vérifier si le nom et le mot de passe correspondaient à une certaine lettre, car pour la comparaison avec un caractère ca marchait, mais pas avec un wxString. Par la suite je vais devoir comparer des valeurs dans une base de données avec SQlite, donc il faudrait bien que je change mon code.

    Code :
    1
    2
     
    boiteLogin->m_champLogin->GetValue().IsSameAs('t') && boiteLogin->m_champMDP->GetValue().IsSameAs('t'))
    Je n'ai pas trouvé la méthode pour comparer des wxString, IsSameAs marche avec un caractère...

    EDIT : si, c'est bon, je devais pas encore être réveillé...

  8. #28
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Bonjour,

    J'ai dans mon programme, pas mal de variables dont j'aimerai changer les valeurs dans différentes classes. En fait, est ce que je peux déclarer ces variables comme étant global dans mes classes, ou dois-je créer une classe spécifique ( où j'inclu toutes mes variables globales ). Je souhaiterai aussi que ces valeurs ne soit pas perdu après chaque redémarrage, je pense que je devrai passer par une base de données, mais s'il est possible de faire sans, je suis preneur

  9. #29
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Aurais-tu en stock un bon exemple d'utilisation de la base de données sqlite3 avec les widgets ? Après consultation de la doc, je ne suis pas beaucoup plus avancé, et je n'ai pas réussi à mettre la main sur des tutos qui m'aiderai à avancer dans mon projet...

  10. #30
    Membre confirmé Avatar de wxXav
    Homme Profil pro Xavier Perrissoud
    Développeur amateur
    Inscrit en
    décembre 2008
    Messages
    145
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Perrissoud
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : décembre 2008
    Messages : 145
    Points : 228
    Points
    228

    Par défaut

    Salut.

    En ce qui concerne sqlite3, il y a un port spécifique wxWidgets : wxSQLite3

    J'en ai vaguement parlé dans un ancien tutoriel sur l'installation manuelle des DevPaks pour Code::Blocks : il y a un petit exemple.

    Sinon, suivant le nombre de variables que tu as à stocker, tu peux peut-être créer ton propre truc.
    Pour ma part, dans ce cas, je crée une classe singleton "DatasManager" ou "SettingsManager" qui gère les données ou les réglages en mémoire.
    Et cette classe se charge également d'écrire ou de lire les données dans un fichier xml au démarrage et à l'arrêt de l'application.

    Si tu as peur que le fichier xml soit trop gros, tu peux le faire passer à travers un stream zip, et tu obtiens un truc binaire compressé.

    Si tu veux plus d'infos là dessus, n'hésites pas.

    @+
    Xav'

  11. #31
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2012
    Messages : 22
    Points : 0
    Points
    0

    Par défaut

    Du neuf,
    Alors après discussion avec le chef de projet, je doit utiliser sqlite3.c et non pas wxSqlite3, mais j'arrive à peu prêt maintenant à m'en sortir.
    Concernant le fichier de variables, on a utilisé la déclaration des variables dans un fichier déjà existant, pas "besoin" de fichier xml, apparement la solution du fichier existant est suffisante.

    En revanche, on m'a dit que l'on pouvait avoir un combobox qui inclu un panel de couleur. En ce moment, j'ai un combobox avec un tableau de wxString permettant le choix d'une couleur, mais on me demande d'y inclure à la place un choix avec des cases de couleurs, un peu comme dans les logiciels de graphisme.

    Merci pour les pistes tout de même, je pourrai y penser si je fais un autre projet dans l'avenir

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •