Skip to content

French

A forum for those speaking French

158 Topics 786 Posts
  • Qt/QML Exposer une variable C++ au QML

    Unsolved
    2
    0 Votes
    2 Posts
    1k Views
    O
    Bonjour, Dans votre fonction, call, le device est détruit à la fin de la fonction, Le signal signalWithoutPointer ne peut pas marcher car cela demanderai un copy de l'objet Device mais il s'agit d'un QObject ou le constructeur par copy est désactivé. Le passage d'un pointeur vers Device, ben, la moment juste après le pointeur est null. Le passage avec signal sur pointeur "pointer", lui il marche mais c'est la responsabilité de la classe connection de détruire pointer (et donc de garder une variable dessus). Le plus simple c'est de faire un retour de fonction si vous voulez vous simplifiez la vie. // in Connection.cpp Device* Connection::call() { return new Device("Pointeur"); } //main.qml (à la place de la Connections) property Device device: Connection.call() Dans ce cadre cas là, par passage par pointer via un retour de fonction, l'objet appartiendra au QML et sera détruit par le QML Engine. Cependant, je recommande plutot de passer par une propriété. // in connection.h // je suggère de renommer cette classe en ConnectionController (pour éviter la confusion avec le type qml Connections class Connection : public QObject { Q_OBJECT Q_PROPERTY(Device* device READ device CONSTANT) public: explicit Connection(QObject *parent = nullptr); Device* device() const; private: std::unique_ptr<Device> m_device; }; // in connection.cpp Connection::Connection(QObject *parent) : QObject(parent), m_device(new Device("Pointeur"){} Device* Device::device() const { return m_device.get(); } // main.qml property Device device: Connection.device Ici le device reste la responsabilité de la classe Connection, mais c'est géré par le uinique_ptr. Si le device peut changer, il conviendra d'ajouter un signal deviceChanged et de supprimer le CONSTANT de la Q_PROPERTY pour y mettre un "NOTIFY deviceChanged".
  • This topic is deleted!

    Moved Unsolved
    1
    0 Votes
    1 Posts
    10 Views
    No one has replied
  • [ANN] Parution du livre "Qt 6 en pratique"

    Unsolved
    1
    0 Votes
    1 Posts
    192 Views
    No one has replied
  • Changement de la taille d'une police dans un QTimeEdit

    Solved
    2
    0 Votes
    2 Posts
    246 Views
    M
    @Max Ok, j'ai compris : en modifiant la taille de la fonte du QLineEdit inclus dans le QTimeEdit, ça fonctionne. Bêtement je prenais la police "f" du QLineEdit inclus, modifiais la taille de "f" et faisais QLineEdit->parent->setFont(f). Ici "parent" était de trop. En me relisant, j'espère que ce que j'ai écris est compréhensible... A+ Sylvain
  • Les points d'arrêt font sauter l'exécution de l'interface

    Unsolved
    8
    0 Votes
    8 Posts
    653 Views
    SGaistS
    Je pense que nous sommes dans un cas de: update tardive et le backend a changé. Il faudrait essayer de lancer la dernière version de l'installateur pour voir si ça se passe mieux.
  • Valeur des variables QString en déboggage

    Solved
    3
    0 Votes
    3 Posts
    335 Views
    M
    J'ai trouvé ! J'utilisais la v9 de Qt Creator. Alors j'ai tenté la v17. Au final, même problème... Donc j'ai tenté un bête renommage du fichier "~/.config/QtProject/QtCreator.ini", forçant Qt Creator à en faire un nouveau. Et ça va beaucoup mieux ! Dire que ça fait des mois que ça m'embête ce truc... Merci en tout cas pour ton message !
  • QFont : point vs pixel

    Solved
    6
    0 Votes
    6 Posts
    519 Views
    SGaistS
    Excellent ! Merci pour le pointeur La gestion des écrans n'est jamais chose aisée. Spécialement depuis l'avènement des DPis de hautes valeurs.
  • Comment utiliser QCDebug ?

    Solved
    10
    0 Votes
    10 Posts
    901 Views
    M
    Fort et clair ! Merci beaucoup !
  • QScxmlStateMachine

    Solved
    2
    1 Votes
    2 Posts
    484 Views
    M
    . .
  • Sélections multiples dans un QTreeView

    Solved
    2
    0 Votes
    2 Posts
    507 Views
    M
    Après recherches, il fallait utiliser le QItemSelectionModel (= QISM) du QTreeView (= QTV) (méthode treeView->selectionModel()). Quand les sélections dans le QTV changent, QISM émet un signal qui transmet deux QItemSelection : celui des éléments sélectionnés et celui des éléments désélectionnés. Avec ça j'ai pu faire ce que je voulais.
  • aide pour la gestion d'une application sur raspberryPi

    Unsolved
    4
    0 Votes
    4 Posts
    761 Views
    L
    j'avais oublier le .h #ifndef FROID_H #define FROID_H #include <ctime> #include "consignes.h" #include "temperatures.h" #include "filtre.h" #include "relais.h" class Froid: public QObject { Q_OBJECT public: Froid(); bool gifFroid = false; bool gifVentilationFroid = false; bool gifVentilationIntFroid = false; bool gifVentilationExtFroid = false; bool gifVentilationDegFroid = false; bool gifDegivrageFroid = false; bool gifEgouttageFroid = false; bool degivrageFroid = false; unsigned long long departChronoFiltreFr; unsigned long long finChronoFiltreFr; unsigned long chronoNettoyageFiltreFr; void modeFroid(); void arretFroid(); void chauffageFroid(); public slots: void tempos(); private: Temperatures *m_froidTemperatures; Consignes *m_froidConsignes; Filtre *m_froidFiltre; Relais m_froidRelais; QTimer *m_timerVoletsFr; int timerVoletsFr = 10000; // 10 secondes int timerVentilationFr = 15000; // 2 min 30 secondes int timerV4VFr = 4500; // 45 secondes int timerCompresseurFr = 7800; // 1 minute 30 secondes //int timerLancementDegivrageFr = 120000; // 20 minutes int timerDegivrageFr = 120000; // 20 minutes int timerControleDegivrageFr = 12000; // 2 minutes int timerFinDegivrageFr = 10000; // 10 secondes int timerEgouttageFr = 30000; // 5 minutes int timerFinEgouttageFr = 18000; // 3 minutes enum { TEMPO_VOLETS_FROID, TEMPO_VENTILATION_FROID, TEMPO_V4V_FROID, TEMPO_COMPRESSEUR_FROID, TEMPO_DEGIVRAGE_FROID, TEMPO_CONTROLE_DEGIVRAGE_FROID, LANCEMENT_DEGIVRAGE_FROID, TEMPO_FIN_DEGIVRAGE_FROID, TEMPO_EGOUTTAGE_FROID, TEMPO_FIN_EGOUTTAGE_FROID, TEMPO_ARRET, //COMMANDE_CANICULE, //TEMPO_V4V_CANICULE, //TEMPO_COMPRESSEUR_CANICULE, //TEMPO_DEGIVRAGE_CANICULE, } etatsGainableFroid;// = TEMPO_VOLETS_FROID; void tempoVoletsFr(); void lancementDegivrageFr(); private slots: //void tempoVoletsFr(); void tempoVentilationFr(); void tempoV4VFr(); void tempoCompresseurFr(); void tempoDegivrageFr(); //void tempoLancementDegivrageFr(); void tempoControleDegivrageFr(); void tempoFinDegivrageFr(); void tempoEgouttageFr(); void tempoFinEgouttageFr(); }; #endif //FROID_H
  • 0 Votes
    4 Posts
    887 Views
    SGaistS
    Désolé, je viens de voir que j'avais répondu en Anglais ! Quelle est la solution trouvée ?
  • PySide6-QtQuick&QML problème pour générer un unique executable python nuitka

    Unsolved
    1
    0 Votes
    1 Posts
    321 Views
    No one has replied
  • Problème avec mes QLineEdit

    Solved
    7
    0 Votes
    7 Posts
    2k Views
    GrecKoG
    Si tu mets en place un mapping entre colonne et widget via addMapping, les widgets peuvent ensuite écrire dans le model en fonction de la SubmitPolicy. Soit automatiquement à la perte de focus, soit en appelant manuellement submit().
  • Installation problématique de Gammaray sous Debian

    Solved
    9
    0 Votes
    9 Posts
    2k Views
    M
    Bonsoir, Un rapide coucou pour dire que la compilation est enfin terminée avec le module que je voulais (KDSME). je peux enfin visualiser les chagements d'états de mes QScxmlStateMachine et voir où ça coince. Un vrai parcours du combattant pour résoudre les dépendances et comprendre CMake que je ne connaissais pas.
  • QLineEdit et son Validator : problème d'apparance du texte suite à setText().

    Solved
    14
    0 Votes
    14 Posts
    3k Views
    M
    Pour être un peu plus complet sur ce sujet, je viens de lire que la QLineEdit peut être déclarée mandatory dans ses propriétés. Auquel cas le fond de ce Widget est jaune s'il n'est pas renseigné.
  • Traitement des évènements d'une QScxmlStateMachine

    Solved
    11
    0 Votes
    11 Posts
    2k Views
    M
    Bonjour, Je m'apperçois que je n'ai pas clôturé ce fil. La solution est d'évaluer le bout de code à l'entrée dans l'état cible, ce qui se fait simplement avec connectToState(). De cette façon, même si le changement d'état a lieu tardivement, le code est évalué à l'entrée dans l'état. Bref... encore un problème issu de ma méconnaissance de l'API des QScxmlStateMachine.
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    16 Views
    No one has replied
  • This topic is deleted!

    Locked Solved
    2
    0 Votes
    2 Posts
    88 Views
  • Changer d'identifiant

    Solved
    4
    0 Votes
    4 Posts
    1k Views
    Axel SpoerlA
    Cliquez sur votre nom d'utilisateur en haut à droite, puis cliquez à nouveau sur votre nom d'utilisateur dans le menu qui apparaît à gauche du curseur. Vous accédez ainsi à votre profil. Les boutons situés à droite vous permettent de modifier votre nom d'utilisateur ou votre adresse électronique. Si le compte est commercial, votre gestionnaire de compte devra approuver les changements d'adresse électronique. Vous avez posé la même question ici.