Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Time count and display it
Forum Updated to NodeBB v4.3 + New Features

Time count and display it

Scheduled Pinned Locked Moved Solved General and Desktop
21 Posts 4 Posters 9.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R rockon209

    @VRonin thanks for reply but i want to display the time in a QtExtEdit and also the startbutton has other function also. HOw to do this?

    J.HilkJ Online
    J.HilkJ Online
    J.Hilk
    Moderators
    wrote on last edited by J.Hilk
    #4

    @rockon209

    You can convert QTime to a QString easy enough with QTime::toString(const QString &format) const

    And to connect your button to multiple Slots just add an other connect:

    connect(m_startButton,&QPushButton::clicked,this,[this](){m_elTim.start();});
    ...
    connect(m_startButton,&QPushButton::clicked, receiver1, &SLOT1);
    connect(m_startButton,&QPushButton::clicked, receiver2, &SLOT2);
    ...
    ...
    connect(m_startButton,&QPushButton::clicked, receiverX, &SLOTX);
    

    Edit: Fixed missing ,


    Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


    Q: What's that?
    A: It's blue light.
    Q: What does it do?
    A: It turns blue.

    1 Reply Last reply
    2
    • R Offline
      R Offline
      rockon209
      wrote on last edited by rockon209
      #5

      I am geting the following error when i run the code

      field 'm_elTim' has incomplete type 'QElapsedTimer'
      QElapsedTimer m_elTim;
      ^

      mrjjM J.HilkJ 2 Replies Last reply
      0
      • R rockon209

        I am geting the following error when i run the code

        field 'm_elTim' has incomplete type 'QElapsedTimer'
        QElapsedTimer m_elTim;
        ^

        mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #6

        @rockon209 said in Time count and display it:

        QElapsedTimer

        Did you you type
        #include <QElapsedTimer>
        ?

        1 Reply Last reply
        3
        • R rockon209

          I am geting the following error when i run the code

          field 'm_elTim' has incomplete type 'QElapsedTimer'
          QElapsedTimer m_elTim;
          ^

          J.HilkJ Online
          J.HilkJ Online
          J.Hilk
          Moderators
          wrote on last edited by
          #7

          @rockon209
          you're missing some includes,

          in this case add:

          #include <QElapsedTimer>
          

          Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


          Q: What's that?
          A: It's blue light.
          Q: What does it do?
          A: It turns blue.

          1 Reply Last reply
          1
          • R Offline
            R Offline
            rockon209
            wrote on last edited by rockon209
            #8

            yes i have already included it in source file, but still the same error

            VRoninV 1 Reply Last reply
            0
            • R rockon209

              yes i have already included it in source file, but still the same error

              VRoninV Offline
              VRoninV Offline
              VRonin
              wrote on last edited by
              #9

              @rockon209 said in Time count and display it:

              in source file

              That should go in the header file

              "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
              ~Napoleon Bonaparte

              On a crusade to banish setIndexWidget() from the holy land of Qt

              1 Reply Last reply
              0
              • R Offline
                R Offline
                rockon209
                wrote on last edited by
                #10

                @VRonin but when i include it in header file my application crashes

                VRoninV 1 Reply Last reply
                0
                • R rockon209

                  @VRonin but when i include it in header file my application crashes

                  VRoninV Offline
                  VRoninV Offline
                  VRonin
                  wrote on last edited by
                  #11

                  @rockon209 said in Time count and display it:

                  my application crashes

                  That's not due to the #include could you post your code?

                  "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                  ~Napoleon Bonaparte

                  On a crusade to banish setIndexWidget() from the holy land of Qt

                  1 Reply Last reply
                  0
                  • R Offline
                    R Offline
                    rockon209
                    wrote on last edited by VRonin
                    #12

                    main.cpp

                    #include "watch.h"
                    #include <QApplication>
                    
                    int main(int argc, char *argv[])
                    {
                        QApplication a(argc, argv);
                        watch w;
                        w.show();
                    
                        return a.exec();
                    }
                    

                    watch.cpp

                    #include "watch.h"
                    
                    
                    watch::watch(QWidget *parent) :
                        QWidget(parent)
                    
                    {
                    
                        m_startButton=new QPushButton("Start",this);
                        m_liveCounter = new QTimeEdit(this);
                        m_intervalClock=new QTimer(this);
                        connect(m_startButton,&QPushButton::clicked,this,[this](){m_elTim.start();});
                        connect(m_intervalClock,&QTimer::timeout,this,[this](){if(m_elTim.isValid()) m_liveCounter->setTime(QTime(0,0).addMSecs(m_elTim.elapsed()));});
                        m_intervalClock->start(500);
                        QBoxLayout* mainLayout = new QHBoxLayout();
                        mainLayout->addWidget(m_startButton);
                        mainLayout->addWidget(m_liveCounter );
                        setLayout(mainLayout);
                    }
                    

                    watch.h

                    #ifndef WATCH_H
                    #define WATCH_H
                    
                    #include <QWidget>
                    #include <QElapsedTimer>
                    #include <QPushButton>
                    #include <QTimeEdit>
                    #include <QTimer>
                    #include <QBoxLayout>
                    namespace Ui {
                    class watch;
                    }
                    
                    class watch : public QWidget
                    {
                        Q_OBJECT
                    
                    public:
                        explicit watch(QWidget *parent = 0);
                    
                    
                    private:
                        QElapsedTimer m_elTim;
                        QPushButton* m_startButton;
                        QTimer* m_intervalClock;
                        QTimeEdit* m_liveCounter;
                    };
                    
                    #endif // WATCH_H
                    

                    stopwatch.pro

                    QT       += core gui
                    
                    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
                    
                    TARGET = stopwatch
                    TEMPLATE = app
                    
                    
                    SOURCES += main.cpp\
                            watch.cpp
                    
                    HEADERS  += watch.h
                    
                    FORMS    += watch.ui
                    
                    1 Reply Last reply
                    0
                    • VRoninV Offline
                      VRoninV Offline
                      VRonin
                      wrote on last edited by
                      #13

                      Can't see anything obvious (but I might just be blind). could you post your stack trace at the moment of crash?

                      "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                      ~Napoleon Bonaparte

                      On a crusade to banish setIndexWidget() from the holy land of Qt

                      1 Reply Last reply
                      0
                      • J.HilkJ Online
                        J.HilkJ Online
                        J.Hilk
                        Moderators
                        wrote on last edited by
                        #14

                        ah,

                        in your watch.h add #include<QElapsedTimer> and in your watch.cpp intilize it with m_elTim = new QElapsedTimer(); it's missing from @VRonin code example


                        Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                        Q: What's that?
                        A: It's blue light.
                        Q: What does it do?
                        A: It turns blue.

                        VRoninV 1 Reply Last reply
                        0
                        • J.HilkJ J.Hilk

                          ah,

                          in your watch.h add #include<QElapsedTimer> and in your watch.cpp intilize it with m_elTim = new QElapsedTimer(); it's missing from @VRonin code example

                          VRoninV Offline
                          VRoninV Offline
                          VRonin
                          wrote on last edited by
                          #15

                          @J.Hilk said in Time count and display it:

                          in your watch.cpp intilize it with m_elTim = new QElapsedTimer(); it's missing from @VRonin code example

                          It's on the stack so no need to do this. QElapsedTimer is not a QObject

                          "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                          ~Napoleon Bonaparte

                          On a crusade to banish setIndexWidget() from the holy land of Qt

                          J.HilkJ 1 Reply Last reply
                          0
                          • R Offline
                            R Offline
                            rockon209
                            wrote on last edited by
                            #16

                            now the code is not crashing. everyting is running but when i push startbutton nothing happens

                            VRoninV 1 Reply Last reply
                            0
                            • R rockon209

                              now the code is not crashing. everyting is running but when i push startbutton nothing happens

                              VRoninV Offline
                              VRoninV Offline
                              VRonin
                              wrote on last edited by
                              #17

                              @rockon209 said in Time count and display it:

                              now the code is not crashing.

                              What did you change?

                              "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                              ~Napoleon Bonaparte

                              On a crusade to banish setIndexWidget() from the holy land of Qt

                              1 Reply Last reply
                              0
                              • VRoninV VRonin

                                @J.Hilk said in Time count and display it:

                                in your watch.cpp intilize it with m_elTim = new QElapsedTimer(); it's missing from @VRonin code example

                                It's on the stack so no need to do this. QElapsedTimer is not a QObject

                                J.HilkJ Online
                                J.HilkJ Online
                                J.Hilk
                                Moderators
                                wrote on last edited by
                                #18

                                @VRonin said in Time count and display it:

                                It's on the stack so no need to do this. QElapsedTimer is not a QObject

                                You're right of course, I must have missed that...


                                Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                                Q: What's that?
                                A: It's blue light.
                                Q: What does it do?
                                A: It turns blue.

                                1 Reply Last reply
                                0
                                • R Offline
                                  R Offline
                                  rockon209
                                  wrote on last edited by rockon209
                                  #19

                                  I create a new code just to check if everyting works fine and then i found out that when i click startbutton nothing happens

                                  1 Reply Last reply
                                  0
                                  • R Offline
                                    R Offline
                                    rockon209
                                    wrote on last edited by
                                    #20

                                    ok sorry guys it working but its not showing the seconds only minute and hours how to change the format? to hh:mm:ss

                                    1 Reply Last reply
                                    0
                                    • R Offline
                                      R Offline
                                      rockon209
                                      wrote on last edited by
                                      #21
                                      This post is deleted!
                                      1 Reply Last reply
                                      0

                                      • Login

                                      • Login or register to search.
                                      • First post
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • Users
                                      • Groups
                                      • Search
                                      • Get Qt Extensions
                                      • Unsolved