Skip to content

French

A forum for those speaking French

150 Topics 778 Posts
  • QScxmlStateMachine

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

    Solved
    2
    0 Votes
    2 Posts
    138 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
    101 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
    232 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
    99 Views
    No one has replied
  • Problème avec mes QLineEdit

    Solved
    7
    0 Votes
    7 Posts
    679 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
    566 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
    1k 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
    860 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
    468 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.
  • QImage avec data:image/png;base64

    Unsolved
    15
    0 Votes
    15 Posts
    1k Views
    M
    Bonjour, J'ai réussi à faire ce dont j'avais en tête. Utilisation de Qt 6.7.1 avec QML et openGL pour afficher des images en mode "stream video" à partir d'une caméra de la marque Flir, ou toute autre caméra qui n'est pas compatible "Windows Media Foundation" mais "Direct show" : ce qui n'est plus possible depuis Qt6. Par contre, je ne peux pas joindre les fichiers sources de mon programme de tests, désolé.
  • install gif

    Unsolved
    4
    0 Votes
    4 Posts
    442 Views
    L
    @SGaist mon MAIN #include "mainwindow.h" #include "lectureTemps.hpp" #include "gpioPin.hpp" #include "BB_DS18B20.hpp" #include "commandes.hpp" #include "relais.hpp" #include <QApplication> BB_DS18B20 * ds18b20; int main(int argc, char *argv[]) { // pin Sondes ds18b20 int DS_PIN = 4; pinMode (DS_PIN, OPENDRAIN_PULLUP); ds18b20 = new BB_DS18B20 (gpioline[DS_PIN]); // pins // soties pinMode (relaiEteHiver, OUTPUT); digitalWrite (relaiEteHiver, HIGH); pinMode (relaiComp, OUTPUT); digitalWrite (relaiComp, HIGH); pinMode (relaiV4V, OUTPUT); digitalWrite (relaiV4V, HIGH); pinMode (relaiVitesseVentExt, OUTPUT); digitalWrite (relaiVitesseVentExt, HIGH); pinMode (relaiPetiteVitesseInt, OUTPUT); digitalWrite (relaiPetiteVitesseInt, HIGH); pinMode (relaiGrandeVitesseInt, OUTPUT); digitalWrite (relaiGrandeVitesseInt, HIGH); // entrées pinMode (thermostats, INPUT_PULLUP); pinMode (capteurFiltre, INPUT_PULLUP); // le fichier ID sur les ds18b20 loadDSConfig ("DS18B20.conf", ds_ID); // charge info sur les ds18b20 char ficConf[654] = "DS18B20.conf"; FILE * confHan = fopen(ficConf, "r"); if (NULL == confHan) { cout << "Le fichier de configuration \n" << ficConf << "\n doit exister\n"; return (111); } fclose(confHan); loadDSConfig("DS18B20.conf", ds_ID); // protégé contre le cas où il est absent cout << "\n configure\n"; if (ds_ID.size() < 2) { cout << "\nVous devez avoir au moins un thermomètre\n"; return(112); } // créer le vecteur contenant la température des DS18b20 for (uint loop = 0; loop < ds_ID.size(); loop++) ds_temperature.push_back ( -9999.9); // enregistre une information invalide pour commencer QApplication a(argc, argv); QApplication::setOverrideCursor(QCursor(Qt::BlankCursor)); MainWindow w; return a.exec(); } mainWindow cpp #include "mainwindow.h" #include "gpioPin.hpp" #include "relais.hpp" MainWindow::MainWindow() { baseWindow =new QWidget; baseWindow ->setFixedSize(1920,1080); baseWindow ->hide(); m_start = new Interface(baseWindow); m_start ->dispInterface(); m_marche = new QPushButton("Démarrage ??",baseWindow); m_marche ->setGeometry(1080,900,240,95); m_marche ->setStyleSheet("font-size: 30px;background-color: lime"); m_marche ->hide(); m_appel1 = new QPushButton("Consignes",baseWindow); m_appel1 ->setGeometry(1340,900,240,95); m_appel1 ->setStyleSheet("font-size: 30px;"); m_appel1 ->show(); m_stop = new QPushButton("Stop ??",baseWindow); m_stop ->setGeometry(1600,900,240,95); m_stop ->setStyleSheet("font-size: 30px;background-color: red"); m_stop ->show(); connect(m_marche,&QPushButton::clicked,m_marche,[this](){reStartGainable();}); connect(m_appel1,&QPushButton::clicked,m_appel1,[this](){m_start ->afficheConsignes();}); connect(m_stop,&QPushButton::clicked,m_stop,[this](){stopGainable();}); baseWindow->show(); } void MainWindow::reStartGainable() { m_start ->m_timer1 ->start(); m_marche ->hide(); } void MainWindow::stopGainable() { m_start ->arretGainable(); desactiveTousRelais(); digitalWrite (relaiEteHiver, HIGH); m_start ->m_window1 ->setPixmap(QPixmap("/media/ludo/D83C-C33A/file (2) (1).jpg")); m_start ->m_window1 ->showMaximized(); m_marche ->show(); } mainwindow H #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QtWidgets> #include "interface.h" class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); QWidget *baseWindow; private: Interface *m_start; QPushButton *m_marche; QPushButton *m_appel1; QPushButton *m_stop; void reStartGainable(); void stopGainable(); }; #endif // MAINWINDOW_H
  • Aide à l’installation

    Unsolved
    4
    0 Votes
    4 Posts
    492 Views
    L
    J'ai installé à la main les packages nécessaires à la compilation manuelle sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools sudo apt-get install qt5-qmake qtbase5-dev sudo apt-get install cmake vous pouvez vérifier la version installée qmake -v ça me répond QMake version 3.1 Using Qt version 5.15.8 in /usr/lib/arm-linux-gnueabihf donc c'est bon.
  • Qt Creator Déplacer formulaire sur espace de travail

    Unsolved
    2
    0 Votes
    2 Posts
    318 Views
    T
    Bonjour, Avec-vous agrandi l'espace de travail pour créer un espace supplémentaire pour ajouter un deuxième formulaire? Autre option: pourriez-vous réduire la taille de l'autre formulaire, le temps de libérer un espace sur la gauche ou la droite?
  • Base de bonnes mysql et listview qml réactualisés les données

    Unsolved
    2
    0 Votes
    2 Posts
    327 Views
    T
    QSqlQueryModel offre un modèle de données en mode lecture seulement. Quand vous ajoutez des données, vous les ajoutez dans la base de données (.cpp) mais vous ne mettez pas à jour le model QML enquete. En fait, quand vous ajoutez de nouvelles données, il faudrait informer l'interface que le modèle de données a changé avec "emit dataChanged()" Je vous cite le paragraphe suivant: "The model is read-only by default. To make it read-write, you must subclass it and reimplement setData() and flags(). Another option is to use QSqlTableModel, which provides a read-write model based on a single database table." Il faudrait soit reécrire les functions setData() et flags() soit remplacer QSqlQueryModel par QSqlTableModel. Bonne chance!
  • Qt & Androïd, compatibilité des SDK, JDK et NDK

    Solved
    6
    0 Votes
    6 Posts
    970 Views
    SGaistS
    Je me demande si il y a quelque chose qui traînent dans la registry de Windows.
  • Envoie d'email avec pièce jointe en C++/Qt

    Unsolved
    3
    0 Votes
    3 Posts
    582 Views
    M
    Bonjour, Oui je suis tombé dessus, et je suis en train de la testée merci pour ta réponse.
  • 0 Votes
    1 Posts
    290 Views
    No one has replied