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

Outils Discussion :

Problème de compilation des connect à des slots créés dans Qt Designer


Sujet :

Outils

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 13
    Par défaut Problème de compilation des connect à des slots créés dans Qt Designer
    Bonjour,
    J'utilise les source de Librecad pour les adapter à un problème particulier.
    Dans ces sources, pas mal d'écrans ont été créés par QT Designer.
    Lorsque des slots sont créés dans Qt Designer, apparemment la compilation échoue par ce que uic relie le slot à la classe de base de Qt, par exemple QDialog, et non à la nouvelle classe créée .

    Le code ci-dessous compile normalement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            QObject::connect(buttonBox, &QDialogButtonBox::accepted, DlgParabola, qOverload<>(&QDialog::accept));
            QObject::connect(buttonBox, &QDialogButtonBox::rejected, DlgParabola, qOverload<>(&QDialog::reject));
    Le code ci-dessous déclenche une erreur. Le 2ème "connect" déclenche l'erreur car le slot "validate()" n'existe pas pour QDialog, mais existe dans la classe "LC_LayerDialogEx" devant utiliser cet écran.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            QObject::connect(buttonBox, &QDialogButtonBox::rejected, LC_LayerDialogEx, qOverload<>(&QDialog::reject));
            QObject::connect(buttonBox, &QDialogButtonBox::accepted, LC_LayerDialogEx, qOverload<>(&QDialog::validate))
    Quelqu'un aurait-il une solution pour résoudre ce problème.
    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur Système
    Inscrit en
    Novembre 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur Système

    Informations forums :
    Inscription : Novembre 2019
    Messages : 22
    Par défaut
    Bonjour,

    Si j'ai bien compris ce que tu dis, LC_LayerDialogEx est une classe.

    Ton connect ne peut pas se faire sur la classe directement mais sur un objet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            LC_LayerDialogEx myLayerDialogEx = LC_LayerDialogEx(....)
     
            QObject::connect(buttonBox, &QDialogButtonBox::rejected, &myLayerDialogEx , qOverload<>(&QDialog::reject));
            QObject::connect(buttonBox, &QDialogButtonBox::accepted, &myLayerDialogEx , qOverload<>(&QDialog::validate))
    PS: Je n'ai pas été voir le code de LibreCAD, ni ce à quoi correspond cette classe.

Discussions similaires

  1. [XL-365] VBA: Combiner/Compiler des fichiers PDF dans un chemin existant dans ordre
    Par Maxime VANDEPLASSCHE dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/12/2023, 10h04
  2. Réponses: 2
    Dernier message: 16/11/2011, 21h08
  3. Réponses: 6
    Dernier message: 12/09/2006, 18h25
  4. [ECLIPSE]Compilation des JSP
    Par partyboy dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 03/09/2003, 21h37

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