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 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