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. QTimer: Getting Started problems
Forum Updated to NodeBB v4.3 + New Features

QTimer: Getting Started problems

Scheduled Pinned Locked Moved General and Desktop
17 Posts 6 Posters 6.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.
  • sierdzioS Offline
    sierdzioS Offline
    sierdzio
    Moderators
    wrote on last edited by
    #7

    Wow, we really flooded the poor guy :)

    (Z(:^

    1 Reply Last reply
    0
    • raven-worxR Offline
      raven-worxR Offline
      raven-worx
      Moderators
      wrote on last edited by
      #8

      [quote author="sierdzio" date="1366112776"]Wow, we really flooded the poor guy :)[/quote]

      yep...within 3 mins ... lol

      --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
      If you have a question please use the forum so others can benefit from the solution in the future

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #9

        [quote author="sierdzio" date="1366112776"]Wow, we really flooded the poor guy :)[/quote]

        Like one other user said, we're parallelizing :D

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply
        0
        • sierdzioS Offline
          sierdzioS Offline
          sierdzio
          Moderators
          wrote on last edited by
          #10

          Yeah, but it would be a tad better to spread across different threads (pun well intended :)).

          (Z(:^

          1 Reply Last reply
          0
          • J Offline
            J Offline
            jastmc
            wrote on last edited by
            #11

            Hey, don't knock it!

            Its much better to get too many responses that none at all.

            Thanks for all your help!

            James

            1 Reply Last reply
            0
            • J Offline
              J Offline
              jastmc
              wrote on last edited by
              #12

              SGaist said:-

              bq. Why do you delete your ui variable in on_pushButton_clicked ? Also note, that it’s already deleted in the destructor, so calling that function, then the destructor will cause a crash.
              If you want to close the dialog, connect the pushButton clicked signal on the close slot of the dialog.

              I changed my code to connect the on_pushButton_clicked() signal to the ~mita_screen() slot but the button has no effect when pressed. See below.

              Can anyone please tell me whats wrong here?

              @#include "mita_screen.h"
              #include "ui_mita_screen.h"

              mita_screen::mita_screen(QWidget *parent) :
              QDialog(parent),
              ui(new Ui::mita_screen)
              {
              mita_screen::setWindowFlags(Qt::SplashScreen);
              ui->setupUi(this);

              mita_state = 0;     // Initialise the state machine
              
              QTimer *timer = new QTimer(this);
              connect(timer, SIGNAL(timeout()), this, SLOT(state_update()));
              timer->start(1000);
              
              connect(ui->pushButton, SIGNAL(on_pushButton_clicked()), this, SLOT(~mita_screen()));
              

              }

              mita_screen::~mita_screen()
              {
              delete ui;
              }

              void mita_screen::state_update()
              {
              ui->label->setText(QString("%1").arg(++mita_state));

              }

              void mita_screen::on_pushButton_clicked()
              {

              }

              void mita_screen::on_pushButton_pressed()
              {

              }
              @

              1 Reply Last reply
              0
              • SGaistS Offline
                SGaistS Offline
                SGaist
                Lifetime Qt Champion
                wrote on last edited by
                #13

                You're connecting to the destructor:

                1.It's not a slot
                2.Never call a destructor, it's done for you when the object is destroyed.

                As I said, connect to the "close slot":http://qt-project.org/doc/qt-4.8/qwidget.html#close

                Interested in AI ? www.idiap.ch
                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                0
                • raven-worxR Offline
                  raven-worxR Offline
                  raven-worx
                  Moderators
                  wrote on last edited by
                  #14

                  you can't connect to a destructor. Since your widget is a dialog connect it to the close() slot and additionaly to the deleteLater() slot or set the "widget attribute":http://qt-project.org/doc/qt-4.8/qwidget.html#setAttribute: to Qt::WA_DeleteOnClose to let Qt delete the dialog for you.

                  --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
                  If you have a question please use the forum so others can benefit from the solution in the future

                  1 Reply Last reply
                  0
                  • J Offline
                    J Offline
                    jastmc
                    wrote on last edited by
                    #15

                    Sorry, that was an older version, somehow. Thanks for your patience!
                    With this code, the button is ignored and has no effect.

                    What I meant to post was:-

                    @#include "mita_screen.h"
                    #include "ui_mita_screen.h"
                    #include <QtGui>
                    #include <QLabel>

                    mita_screen::mita_screen(QWidget *parent) :
                    QDialog(parent),
                    ui(new Ui::mita_screen)
                    {
                    mita_screen::setWindowFlags(Qt::SplashScreen);
                    ui->setupUi(this);

                    mita_state = 0;     // Initialise the state machine
                    
                    QTimer *timer = new QTimer(this);
                    connect(timer, SIGNAL(timeout()), this, SLOT(state_update()));
                    timer->start(1000);
                    
                    connect(ui->pushButton, SIGNAL(on_pushButton_clicked()), this, SLOT(mita_screen::close() ));
                    connect(ui->pushButton, SIGNAL(on_pushButton_clicked()), this, SLOT(mita_screen::deleteLater() ));
                    

                    }

                    mita_screen::~mita_screen()
                    {
                    delete ui;
                    }

                    void mita_screen::state_update()
                    {
                    static int counter=0;

                    ui->label->setText(QString("%1").arg(++mita_state));
                    

                    }

                    void mita_screen::on_pushButton_clicked()
                    {

                    }

                    void mita_screen::on_pushButton_pressed()
                    {

                    }
                    @

                    1 Reply Last reply
                    0
                    • sierdzioS Offline
                      sierdzioS Offline
                      sierdzio
                      Moderators
                      wrote on last edited by
                      #16

                      In your connect statement:

                      Not:
                      @
                      SLOT(mita_screen::close())
                      @

                      Instead:
                      @
                      SLOT(close())
                      @

                      (Z(:^

                      1 Reply Last reply
                      0
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by
                        #17

                        on_pushButton_clicked is a slot.

                        Try this:
                        @
                        connect(ui->pushButton, SIGNAL(clicked()), SLOT(close()));
                        @

                        Have a look at the "signal/slot":http://qt-project.org/doc/qt-4.8/signalsandslots.html and the "designer":http://qt-project.org/doc/qt-4.8/designer-manual.html documentation to have a better understanding of how it works

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        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