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

Qt Discussion :

QDateTimeEdit et affectation variable


Sujet :

Qt

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur QHSE
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur QHSE
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Points : 5
    Points
    5
    Par défaut QDateTimeEdit et affectation variable
    Bonjour,
    J'écris une fonction qui permet à l'utilisateur de rentrer 2 QDatetime (donc une date et un temps). Ensuite je voudrais récupérer en seconde l'écart entre les 2 QDate et stocker cette valeure dans une variable.
    Quand je compile je suis face au problème suivant :

    Object::connect: No such signal QDateTimeEdit::datetimeeditChanged(QDateTime)

    J'espère avoir une réponse concernant ce problème
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    /*======================================================================================================================
      FONCTION PERMETTANT DE RECUPERER DEUX DATES ET TEMPS, DE FAIRE LEURS DIFFERENCES ET DE RENVOYER UNE VALEUR EN SECONDE
     ======================================================================================================================*/
    double Window::DateTime()
    {
        editsGroup = new QGroupBox(tr("Heure et Date"));
     
        QLabel *DateHeure = new QLabel;
        QDateTimeEdit *DatHe = new QDateTimeEdit(QDateTime::currentDateTime());
        DateHeure->setText(tr("Entrer l'Heure et la Date précédente"));
        connect(DatHe,SIGNAL(datetimeeditChanged(QDateTime)),this,SLOT(maj_dt(double)));
     
        QLabel *DateHeure1 = new QLabel;
        QDateTimeEdit *DatHe1 = new QDateTimeEdit(QDateTime::currentDateTime());
        DateHeure1->setText(tr("Entrer l'Heure et la Date actuelle"));
        connect(DatHe1,SIGNAL(datetimeeditChanged(QDateTime)),this,SLOT(maj_dt(int)));
     
        //qDebug() << t1.secsTo(t2);
     
        QVBoxLayout *editsLayout = new QVBoxLayout;
     
        editsLayout->addWidget(DateHeure);
        editsLayout->addWidget(DatHe);
        editsLayout->addWidget(DateHeure1);
        editsLayout->addWidget(DatHe1);
     
        editsGroup->setLayout(editsLayout);
     
        return 0;
    }
     
    /*======================================================================================================================
      FONCTION D'AFFECTATION DES VALEURES
     ======================================================================================================================*/
    void Window::maj_dt(int d)
    {
        QDateTime t1=DatHe->dateTime();
        QDateTime t2=DatHe1->dateTime();
        d=t1.secsTo(t2);
        Dt=d;
     
    }

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Est-ce un signal que tu as créé? Dans la doc, c'est valueChanged. Si c'est le cas, pourrais-tu nous montrer sa déclaration?

    Sinon il faut faire attention de connecter des signaux et slots ayant le même type d'arguments, or ici tu as un QTimeEdit face à un double et un int. Je te conseille de regarder la Comment s'interfacent les signaux et les slots?
    Dernière modification par Deepin ; 24/08/2011 à 11h54.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur QHSE
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur QHSE
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    effectivement j'avais par le meme type dans les le signal et le slot,
    j'ai modifier ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    int Window::DateTime()
    {
        editsGroup = new QGroupBox(tr("Heure et Date"));
     
        QLabel *DateHeure = new QLabel;
        QDateTimeEdit *DatHe = new QDateTimeEdit(QDateTime::currentDateTime());
        DateHeure->setText(tr("Entrer l'Heure et la Date précédente"));
        connect(DatHe,SIGNAL(dateTimeChanged(QDateTime)),this,SLOT(SetDateTime(QDateTime)));
     
        QLabel *DateHeure1 = new QLabel;
        QDateTimeEdit *DatHe1 = new QDateTimeEdit(QDateTime::currentDateTime());
        DateHeure1->setText(tr("Entrer l'Heure et la Date actuelle"));
        connect(DatHe1,SIGNAL(dateTimeChanged(QDateTime)),this,SLOT(SetDateTime(QDateTime)));
     
        //qDebug() << e.secsTo(f);
     
        QVBoxLayout *editsLayout = new QVBoxLayout;
     
        editsLayout->addWidget(DateHeure);
        editsLayout->addWidget(DatHe);
        editsLayout->addWidget(DateHeure1);
        editsLayout->addWidget(DatHe1);
     
        editsGroup->setLayout(editsLayout);
     
        return 0;
    }
     
    void Window::SetDateTime(const QDateTime)
    {
       QDateTime e = DatHe->dateTime();
       QDateTime f = DatHe1->dateTime();
     
       int d=e.secsTo(f);
       Dt=d;
    }
    Par contre valueChanged c'est pour changer un "double" ou un "int" pour le temps c'est plutot "dateTimeChanged" mais j'arrive toujours pas à résoudre le problème.

    pour les déclarations ca donne ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
     
    #ifndef CALDEBIT_H
    #define CALDEBIT_H
     
    #include <QWidget>
     
    class QDateTimeEdit;
    class QDateTime;
    class QGroupBox;
    class QLabel;
    class QPushButton;
    class QAction;
    class QMessageBox ;
    class QString ;
     
    class Window : public QWidget
    {
        Q_OBJECT
     
    public:
     
        Window();
     
    public slots:
     
        void SetDateTime(const QDateTime &datetime);
     
    private:
     
        int Dt;
     
        int DateTime();
     
        QDateTimeEdit *DatHe;
        QDateTimeEdit *DatHe1;
        QGroupBox *spinBoxesGroup;
        QGroupBox *editsGroup;
        QGroupBox *doubleSpinBoxesGroup;
        QLabel *DateHeure;
        QLabel *DateHeure1;
        QLabel *label;
        QLabel *datetimeedit;
        QAction *exitAction;
     
    };
     
    #endif // CALDEBIT_H

Discussions similaires

  1. [htm/JavaScript] Pbm affectation variable d'environnement
    Par fab22montpellier dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 27/06/2005, 17h09
  2. Réponses: 5
    Dernier message: 12/05/2005, 11h49
  3. Réponses: 10
    Dernier message: 03/05/2005, 22h57
  4. [JSP] [débutant] affectation variable java
    Par RENAULT dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 26/07/2004, 16h44
  5. Affecter variable champs
    Par pete007 dans le forum ASP
    Réponses: 3
    Dernier message: 20/04/2004, 17h33

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