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. [SOLVED] QPushButton. I click on the button, but nothing not happend.
Forum Updated to NodeBB v4.3 + New Features

[SOLVED] QPushButton. I click on the button, but nothing not happend.

Scheduled Pinned Locked Moved General and Desktop
24 Posts 7 Posters 32.9k 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.
  • S Offline
    S Offline
    Sam
    wrote on last edited by
    #7

    You need to add the button to the layout and then for the mainwindow/dialog u need to set the layout by calling setLayout(m_layout);

    1 Reply Last reply
    0
    • I Offline
      I Offline
      I-sty
      wrote on last edited by
      #8

      @#include "setrefreshspeed.h"
      #include "ui_setrefreshspeed.h"
      #include "mainwindow.h"

      #include <QPushButton>
      #include <QtCore/QCoreApplication>
      #include <QVBoxLayout>

      setRefreshSpeed::setRefreshSpeed(QWidget *parent) :
      QDialog(parent),
      ui(new Ui::setRefreshSpeed)
      {
      ui->setupUi(this);

      QVBoxLayout * vlayout = new QVBoxLayout(this);
      
      button = new QPushButton("Apply", this);
      button->setGeometry(QRect(QPoint(150, 50), QSize(75, 23)));
      connect(button, SIGNAL(released()), this, SLOT(apply()));
      
      vlayout->addWidget(button);
      this->setLayout(vlayout);
      

      }

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

      void setRefreshSpeed::apply()
      {
      QApplication::beep();
      }
      @

      I created one vlayout, I added button to it, but nothing.

      Sorry, for my bad English. My first language is Hungarian.

      1 Reply Last reply
      0
      • L Offline
        L Offline
        leon.anavi
        wrote on last edited by
        #9

        The example at the wiki works fine. Using layout is recommended but not mandatory. I guess that your button is not displayed because your UI and the following line:

        [quote author="I-sty" date="1342522046"]

        @
        ui->setupUi(this);
        @

        [/quote]

        http://anavi.org/

        1 Reply Last reply
        0
        • G Offline
          G Offline
          goblincoding
          wrote on last edited by
          #10

          You can "use Qt designer":http://doc.trolltech.com/main-snapshot/designer-connection-mode.html to set up the signal\slot connection.

          Alternatively, why not try this (if you want to do it manually in your constructor):

          @connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(apply()));@

          (I assumed your UI button is still called pushButton?)

          http://www.goblincoding.com

          1 Reply Last reply
          0
          • I Offline
            I Offline
            I-sty
            wrote on last edited by
            #11

            [quote author="goblincoding" date="1342523306"]You can "use Qt designer":http://doc.trolltech.com/main-snapshot/designer-connection-mode.html to set up the signal\slot connection.

            Alternatively, why not try this (if you want to do it manually in your constructor):

            @connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(apply()));@

            (I assumed your UI button is still called pushButton?)[/quote]

            I set a other slot, called "slot1", with Qt designer.
            I debuged, and i gave 3 errors.

            "Debugging starts
            Object::connect: No such slot QDialog::slot1() in ./ui_setrefreshspeed.h:57
            Object::connect: (sender name: 'pushButton')
            Object::connect: (receiver name: 'setRefreshSpeed')
            Debugging has finished
            "

            This is the line number 57:
            @QObject::connect(pushButton, SIGNAL(clicked()), setRefreshSpeed, SLOT(slot1()));
            @

            Sorry, for my bad English. My first language is Hungarian.

            1 Reply Last reply
            0
            • A Offline
              A Offline
              andre
              wrote on last edited by
              #12

              Did you actually create a slot with that name?

              1 Reply Last reply
              0
              • I Offline
                I Offline
                I-sty
                wrote on last edited by
                #13

                [quote author="Andre" date="1342525437"]Did you actually create a slot with that name?[/quote]

                Yes.

                Sorry, for my bad English. My first language is Hungarian.

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  andre
                  wrote on last edited by
                  #14

                  Show us the complete code then, please.

                  1 Reply Last reply
                  0
                  • I Offline
                    I Offline
                    I-sty
                    wrote on last edited by
                    #15

                    Can I upload here the files? Or I can only copying?

                    Sorry, for my bad English. My first language is Hungarian.

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      andre
                      wrote on last edited by
                      #16

                      No, you cannot upload files here. You could use pastebin for code sections, or perhaps a public dropbox folder.

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        Sam
                        wrote on last edited by
                        #17

                        [quote author="I-sty" date="1342525774"]Can I upload here the files? Or I can only copying?[/quote]

                        Your wish . You can zip the project folder upload it somewhere and paste the link here or write all the files.

                        1 Reply Last reply
                        0
                        • M Offline
                          M Offline
                          Mr.Programmer
                          wrote on last edited by
                          #18

                          You can do this kind of codes automatically with only using Qt Creator.

                          It binds events and... with using some dialog windows and wizards!

                          1 Reply Last reply
                          0
                          • I Offline
                            I Offline
                            I-sty
                            wrote on last edited by
                            #19

                            "on the Google Drive":https://docs.google.com/folder/d/0B2_XIe25TBZFYUdDU0FIRVZxMTA/edit

                            Sorry, for my bad English. My first language is Hungarian.

                            1 Reply Last reply
                            0
                            • G Offline
                              G Offline
                              goblincoding
                              wrote on last edited by
                              #20

                              Your problem is this:

                              @
                              void MainWindow::on_actionOther_triggered()
                              {
                              Ui::setRefreshSpeed something;
                              QDialog *d = new QDialog;
                              something.setupUi(d);
                              d->show();
                              }
                              @

                              You're creating QDialog object, not a refreshSpeed object and QDialog does not have a slot1() (as your compiler rightfully pointed out). You also do not need to explicitly create or setup the UI (that's kind of the whole point with Qt Designer Form classes :) ). This is what you want:

                              @
                              void MainWindow::on_actionOther_triggered()
                              {
                              //Ui::setRefreshSpeed something;
                              setRefreshSpeed *d = new setRefreshSpeed;
                              d->setAttribute( Qt::WA_DeleteOnClose );
                              //something.setupUi(d);
                              d->show();
                              }
                              @

                              http://www.goblincoding.com

                              1 Reply Last reply
                              0
                              • I Offline
                                I Offline
                                I-sty
                                wrote on last edited by
                                #21

                                [quote author="goblincoding" date="1342530066"]Your problem is this:

                                @
                                void MainWindow::on_actionOther_triggered()
                                {
                                Ui::setRefreshSpeed something;
                                QDialog *d = new QDialog;
                                something.setupUi(d);
                                d->show();
                                }
                                @

                                You're creating QDialog object, not a refreshSpeed object and QDialog does not have a slot1() (as your compiler rightfully pointed out). You also do not need to explicitly create or setup the UI (that's kind of the whole point with Qt Designer Form classes :) ). This is what you want:

                                @
                                void MainWindow::on_actionOther_triggered()
                                {
                                //Ui::setRefreshSpeed something;
                                setRefreshSpeed *d = new setRefreshSpeed;
                                d->setAttribute( Qt::WA_DeleteOnClose );
                                //something.setupUi(d);
                                d->show();
                                }
                                @[/quote]

                                Thanks, goblincoding! :D

                                I rewrote, and works perfectly.

                                @void MainWindow::on_actionOther_triggered()
                                {
                                short x = freq;
                                setRefreshSpeed *d = new setRefreshSpeed;
                                d->setAttribute(Qt::WA_DeleteOnClose);
                                d->exec();

                                if (freq != x&#41;{
                                    timer->start(freq);
                                    ui->action1s->setChecked(false);
                                    ui->action2s->setChecked(false);
                                    ui->action3s->setChecked(false);
                                    ui->actionOther->setChecked(true);
                                }
                                

                                }@

                                Sorry, for my bad English. My first language is Hungarian.

                                1 Reply Last reply
                                0
                                • I Offline
                                  I Offline
                                  I-sty
                                  wrote on last edited by
                                  #22

                                  So, the topic is solved. Not? :)
                                  This problem is resolved. I'll write the next. :D

                                  Sorry, for my bad English. My first language is Hungarian.

                                  1 Reply Last reply
                                  0
                                  • S Offline
                                    S Offline
                                    Sam
                                    wrote on last edited by
                                    #23

                                    Glad that you got the code working. Kindly Edit your title and add Solved to it.

                                    Happy Coding!!!!

                                    1 Reply Last reply
                                    0
                                    • G Offline
                                      G Offline
                                      goblincoding
                                      wrote on last edited by
                                      #24

                                      Happy to finally be of some service here :D

                                      http://www.goblincoding.com

                                      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