Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt Creator and other tools
  4. How to create a button and place it where I want and then run a function when the button is clicked C++ QT
QtWS25 Last Chance

How to create a button and place it where I want and then run a function when the button is clicked C++ QT

Scheduled Pinned Locked Moved Solved Qt Creator and other tools
c++ qtbuttonclickevent
17 Posts 3 Posters 8.2k Views
  • 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
    RuWex
    wrote on 28 Sept 2022, 06:17 last edited by
    #1

    I'm new to qt c++:(
    How to create a button and place it where I want and then run a function when the button is clicked?
    I wrote this code but its not work...
    ///
    QPushButton *m_button;
    m_button = new QPushButton("My Button", this);
    m_button->show();
    m_button = new QPushButton("My Button", mainWind);
    m_button->setGeometry(150, 150,150,150);
    m_button->clicked();
    ///
    can anyone help me??

    J 1 Reply Last reply 28 Sept 2022, 06:21
    0
    • R RuWex
      28 Sept 2022, 10:06

      @jsulm

      I have this code:

      QPushButton *m_button= new QPushButton ("Start Testing", this) ;
      QGridLayout *layout = new QGridLayout(this);
      layout->addWidget(m_button,150,150, 100,140);
      m_button->show();

      how can I place the button, for example in the middle of the window? I use it:

      QGridLayout *layout = new QGridLayout(this);
      layout->addWidget(m_button,150,150, 100,140);
      but its not help... and do nothing can anyone help me?

      thanks!!!

      J Offline
      J Offline
      jsulm
      Lifetime Qt Champion
      wrote on 28 Sept 2022, 10:09 last edited by
      #16

      @RuWex I answered this question in my first post in this thread: "You should use layouts to position widgets, see https://doc.qt.io/qt-6/layout.html"

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      R 1 Reply Last reply 28 Sept 2022, 10:18
      3
      • R RuWex
        28 Sept 2022, 06:17

        I'm new to qt c++:(
        How to create a button and place it where I want and then run a function when the button is clicked?
        I wrote this code but its not work...
        ///
        QPushButton *m_button;
        m_button = new QPushButton("My Button", this);
        m_button->show();
        m_button = new QPushButton("My Button", mainWind);
        m_button->setGeometry(150, 150,150,150);
        m_button->clicked();
        ///
        can anyone help me??

        J Offline
        J Offline
        jsulm
        Lifetime Qt Champion
        wrote on 28 Sept 2022, 06:21 last edited by
        #2

        @RuWex said in How to create a button and place it where I want and then run a function when the button is clicked C++ QT:

        qt c++

        There is no such thing. Qt is simply a C++ framework.

        Where did you write this code please? In constructor of your class.
        You should use layouts to position widgets, see https://doc.qt.io/qt-6/layout.html
        To trigger actions when a button is clicked use signals/slots: https://doc.qt.io/qt-6/signalsandslots.html

        This makes no sense:

        m_button->clicked();
        

        clicked() is a signal and will be called by Qt as soon as user clickes then button. Connect a slot to this signal.

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply
        3
        • R Offline
          R Offline
          RuWex
          wrote on 28 Sept 2022, 08:14 last edited by
          #3

          @jsulm
          thank,
          I wrote it in this function (if you know from application- example)

          void MainWindow::open()
          //! [7] //! [8]
          {
              QPushButton *m_button;
              m_button = new QPushButton("My Button", this);
              m_button->show();
              m_button = new QPushButton("My Button", mainWind);
              m_button->setGeometry(150, 150,150,150);
              m_button->clicked();
              if (maybeSave()) {
                  QString fileName = QFileDialog::getOpenFileName(this);
                  if (!fileName.isEmpty())
                      loadFile(fileName);
          
                  QFile file(fileName);
                   if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
                       return;
                  StartToSendCommand(fileName, textEdit);//Ruth
              }
          
          
          }
          J J 2 Replies Last reply 28 Sept 2022, 08:18
          0
          • R RuWex
            28 Sept 2022, 08:14

            @jsulm
            thank,
            I wrote it in this function (if you know from application- example)

            void MainWindow::open()
            //! [7] //! [8]
            {
                QPushButton *m_button;
                m_button = new QPushButton("My Button", this);
                m_button->show();
                m_button = new QPushButton("My Button", mainWind);
                m_button->setGeometry(150, 150,150,150);
                m_button->clicked();
                if (maybeSave()) {
                    QString fileName = QFileDialog::getOpenFileName(this);
                    if (!fileName.isEmpty())
                        loadFile(fileName);
            
                    QFile file(fileName);
                     if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
                         return;
                    StartToSendCommand(fileName, textEdit);//Ruth
                }
            
            
            }
            J Offline
            J Offline
            jsulm
            Lifetime Qt Champion
            wrote on 28 Sept 2022, 08:18 last edited by
            #4

            @RuWex Please also read the rest of my previous reply...
            I also don't understand why you're creating a button inside open(). What do you want to do with this button?

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            R 1 Reply Last reply 28 Sept 2022, 08:40
            0
            • R RuWex
              28 Sept 2022, 08:14

              @jsulm
              thank,
              I wrote it in this function (if you know from application- example)

              void MainWindow::open()
              //! [7] //! [8]
              {
                  QPushButton *m_button;
                  m_button = new QPushButton("My Button", this);
                  m_button->show();
                  m_button = new QPushButton("My Button", mainWind);
                  m_button->setGeometry(150, 150,150,150);
                  m_button->clicked();
                  if (maybeSave()) {
                      QString fileName = QFileDialog::getOpenFileName(this);
                      if (!fileName.isEmpty())
                          loadFile(fileName);
              
                      QFile file(fileName);
                       if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
                           return;
                      StartToSendCommand(fileName, textEdit);//Ruth
                  }
              
              
              }
              J Offline
              J Offline
              JonB
              wrote on 28 Sept 2022, 08:23 last edited by JonB
              #5

              @RuWex said in How to create a button and place it where I want and then run a function when the button is clicked C++ QT:

              I wrote it in this function (if you know from application- example)

              From what example? Please provide a link.
              But also follow what @jsulm is asking/saying.

              R 1 Reply Last reply 28 Sept 2022, 08:50
              0
              • J jsulm
                28 Sept 2022, 08:18

                @RuWex Please also read the rest of my previous reply...
                I also don't understand why you're creating a button inside open(). What do you want to do with this button?

                R Offline
                R Offline
                RuWex
                wrote on 28 Sept 2022, 08:40 last edited by
                #6

                @jsulm I'm new in qt c++ and I dont so know, what can I do instaed of?
                and i did it in open() because I want the button to appear when the option - open is choosen...

                J 1 Reply Last reply 28 Sept 2022, 08:47
                0
                • R RuWex
                  28 Sept 2022, 08:40

                  @jsulm I'm new in qt c++ and I dont so know, what can I do instaed of?
                  and i did it in open() because I want the button to appear when the option - open is choosen...

                  J Offline
                  J Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on 28 Sept 2022, 08:47 last edited by jsulm
                  #7

                  @RuWex said in How to create a button and place it where I want and then run a function when the button is clicked C++ QT:

                  what can I do instaed of?

                  First: explain CLEARLY what you want to do.
                  And please learn Qt basic stuff like signals/slots (read the links I posted).
                  "qt c++" - again, there is no such thing. Are you new to Qt, or also to C++?
                  If you need a button to pen a dialog then it should look like this:

                  MainWindow::MainWindow(...)
                  {
                      m_button = new QPushButton("My Button", this);
                      m_button->show();
                      connect(m_button, &QPushButton::clicked, this, &MainWindow::open);
                  }
                  
                  void MainWindow::open()
                  {
                      if (maybeSave()) {
                          QString fileName = QFileDialog::getOpenFileName(this);
                          if (!fileName.isEmpty())
                              loadFile(fileName);
                      
                          QFile file(fileName);
                           if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
                               return;
                          StartToSendCommand(fileName, textEdit);//Ruth
                  }
                  

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  R 1 Reply Last reply 28 Sept 2022, 09:01
                  0
                  • J JonB
                    28 Sept 2022, 08:23

                    @RuWex said in How to create a button and place it where I want and then run a function when the button is clicked C++ QT:

                    I wrote it in this function (if you know from application- example)

                    From what example? Please provide a link.
                    But also follow what @jsulm is asking/saying.

                    R Offline
                    R Offline
                    RuWex
                    wrote on 28 Sept 2022, 08:50 last edited by
                    #8

                    @JonB
                    I took from the example that I got inside the software
                    image_1.png

                    J 1 Reply Last reply 28 Sept 2022, 08:59
                    0
                    • R RuWex
                      28 Sept 2022, 08:50

                      @JonB
                      I took from the example that I got inside the software
                      image_1.png

                      J Offline
                      J Offline
                      JonB
                      wrote on 28 Sept 2022, 08:59 last edited by
                      #9

                      @RuWex
                      If you cannot provide a link I can't look at it.

                      1 Reply Last reply
                      0
                      • J jsulm
                        28 Sept 2022, 08:47

                        @RuWex said in How to create a button and place it where I want and then run a function when the button is clicked C++ QT:

                        what can I do instaed of?

                        First: explain CLEARLY what you want to do.
                        And please learn Qt basic stuff like signals/slots (read the links I posted).
                        "qt c++" - again, there is no such thing. Are you new to Qt, or also to C++?
                        If you need a button to pen a dialog then it should look like this:

                        MainWindow::MainWindow(...)
                        {
                            m_button = new QPushButton("My Button", this);
                            m_button->show();
                            connect(m_button, &QPushButton::clicked, this, &MainWindow::open);
                        }
                        
                        void MainWindow::open()
                        {
                            if (maybeSave()) {
                                QString fileName = QFileDialog::getOpenFileName(this);
                                if (!fileName.isEmpty())
                                    loadFile(fileName);
                            
                                QFile file(fileName);
                                 if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
                                     return;
                                StartToSendCommand(fileName, textEdit);//Ruth
                        }
                        
                        R Offline
                        R Offline
                        RuWex
                        wrote on 28 Sept 2022, 09:01 last edited by
                        #10

                        @jsulm said in How to create a button and place it where I want and then run a function when the button is clicked C++ QT:
                        thank you!!

                        I'll explain a little what I meant, I want to have the option of opening a file, and after opening the file a "start testing" button will appear, clicking on it will activate the function StartToSendCommand() which receives QString fileName, QPlainTextEdit *textEdit - which is a problem according to the option you gave me, it doesn't give in the function connect() to send parameters. Then I want the function to run on the file I opened... Is my question more understandable?

                        J 1 Reply Last reply 28 Sept 2022, 09:09
                        0
                        • R RuWex
                          28 Sept 2022, 09:01

                          @jsulm said in How to create a button and place it where I want and then run a function when the button is clicked C++ QT:
                          thank you!!

                          I'll explain a little what I meant, I want to have the option of opening a file, and after opening the file a "start testing" button will appear, clicking on it will activate the function StartToSendCommand() which receives QString fileName, QPlainTextEdit *textEdit - which is a problem according to the option you gave me, it doesn't give in the function connect() to send parameters. Then I want the function to run on the file I opened... Is my question more understandable?

                          J Offline
                          J Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on 28 Sept 2022, 09:09 last edited by
                          #11

                          @RuWex said in How to create a button and place it where I want and then run a function when the button is clicked C++ QT:

                          connect()

                          Connect is a method in QObject - all subclasses including QPlainTextEdit have it.
                          Modified version according your description (I don't understand why you're opening file without doing anything with its content, I also don't know what this textEdit is about and why it needs to be parameter, your code is really strange - I suggest you start from scratch step by step):

                          void MainWindow::open()
                          {
                              if (maybeSave()) {
                                  QString fileName = QFileDialog::getOpenFileName(this);
                          
                                  QPushButton *button = new QPushButton("Start", this);
                                  connect(button, &QPushButton::clicked, this, [=]() { sendCommand(fileName, textEdit); });
                          }
                          
                          void MainWindow::sendCommand(QString fileName, QTextEdit textEdit)
                          {
                              if (!fileName.isEmpty())
                                  loadFile(fileName);
                                  
                              QFile file(fileName);
                               if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
                                   return;
                               StartToSendCommand(fileName, textEdit);//Ruth
                          }
                          

                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                          1 Reply Last reply
                          1
                          • R Offline
                            R Offline
                            RuWex
                            wrote on 28 Sept 2022, 09:14 last edited by RuWex
                            #12

                            I open a file and use its contents!
                            Basically, I open a txt file which is a file consisting of commands and I want that after the file is selected, it will be possible to click on "start testing" - then it will start running line by line from the file and the commands will be sent, so I actually need this whole process.
                            After what I've explained here, is the code understandable, or does it still not look professional (I'd appreciate comments, I'm new...)

                            and- @jsulm- I dont have link its in my software

                            J 1 Reply Last reply 28 Sept 2022, 10:00
                            0
                            • R Offline
                              R Offline
                              RuWex
                              wrote on 28 Sept 2022, 09:27 last edited by
                              #13

                              wow it works!!!
                              Thank you!
                              I would appreciate an answer to my second question :)

                              1 Reply Last reply
                              0
                              • R RuWex
                                28 Sept 2022, 09:14

                                I open a file and use its contents!
                                Basically, I open a txt file which is a file consisting of commands and I want that after the file is selected, it will be possible to click on "start testing" - then it will start running line by line from the file and the commands will be sent, so I actually need this whole process.
                                After what I've explained here, is the code understandable, or does it still not look professional (I'd appreciate comments, I'm new...)

                                and- @jsulm- I dont have link its in my software

                                J Offline
                                J Offline
                                jsulm
                                Lifetime Qt Champion
                                wrote on 28 Sept 2022, 10:00 last edited by
                                #14

                                @RuWex said in How to create a button and place it where I want and then run a function when the button is clicked C++ QT:

                                I open a file and use its contents!

                                Well, not here:

                                void MainWindow::open()
                                {
                                    QPushButton *m_button;
                                    m_button = new QPushButton("My Button", this);
                                    m_button->show();
                                    m_button = new QPushButton("My Button", mainWind);
                                    m_button->setGeometry(150, 150,150,150);
                                    m_button->clicked();
                                    if (maybeSave()) {
                                        QString fileName = QFileDialog::getOpenFileName(this);
                                        if (!fileName.isEmpty())
                                            loadFile(fileName);
                                
                                        QFile file(fileName);
                                         if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) // You open the file here but DO NOT USE IT
                                             return;
                                        StartToSendCommand(fileName, textEdit);//Ruth
                                    }
                                

                                What second question do you mean?

                                https://forum.qt.io/topic/113070/qt-code-of-conduct

                                R 1 Reply Last reply 28 Sept 2022, 10:06
                                0
                                • J jsulm
                                  28 Sept 2022, 10:00

                                  @RuWex said in How to create a button and place it where I want and then run a function when the button is clicked C++ QT:

                                  I open a file and use its contents!

                                  Well, not here:

                                  void MainWindow::open()
                                  {
                                      QPushButton *m_button;
                                      m_button = new QPushButton("My Button", this);
                                      m_button->show();
                                      m_button = new QPushButton("My Button", mainWind);
                                      m_button->setGeometry(150, 150,150,150);
                                      m_button->clicked();
                                      if (maybeSave()) {
                                          QString fileName = QFileDialog::getOpenFileName(this);
                                          if (!fileName.isEmpty())
                                              loadFile(fileName);
                                  
                                          QFile file(fileName);
                                           if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) // You open the file here but DO NOT USE IT
                                               return;
                                          StartToSendCommand(fileName, textEdit);//Ruth
                                      }
                                  

                                  What second question do you mean?

                                  R Offline
                                  R Offline
                                  RuWex
                                  wrote on 28 Sept 2022, 10:06 last edited by
                                  #15

                                  @jsulm

                                  I have this code:

                                  QPushButton *m_button= new QPushButton ("Start Testing", this) ;
                                  QGridLayout *layout = new QGridLayout(this);
                                  layout->addWidget(m_button,150,150, 100,140);
                                  m_button->show();

                                  how can I place the button, for example in the middle of the window? I use it:

                                  QGridLayout *layout = new QGridLayout(this);
                                  layout->addWidget(m_button,150,150, 100,140);
                                  but its not help... and do nothing can anyone help me?

                                  thanks!!!

                                  J 1 Reply Last reply 28 Sept 2022, 10:09
                                  0
                                  • R RuWex
                                    28 Sept 2022, 10:06

                                    @jsulm

                                    I have this code:

                                    QPushButton *m_button= new QPushButton ("Start Testing", this) ;
                                    QGridLayout *layout = new QGridLayout(this);
                                    layout->addWidget(m_button,150,150, 100,140);
                                    m_button->show();

                                    how can I place the button, for example in the middle of the window? I use it:

                                    QGridLayout *layout = new QGridLayout(this);
                                    layout->addWidget(m_button,150,150, 100,140);
                                    but its not help... and do nothing can anyone help me?

                                    thanks!!!

                                    J Offline
                                    J Offline
                                    jsulm
                                    Lifetime Qt Champion
                                    wrote on 28 Sept 2022, 10:09 last edited by
                                    #16

                                    @RuWex I answered this question in my first post in this thread: "You should use layouts to position widgets, see https://doc.qt.io/qt-6/layout.html"

                                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                                    R 1 Reply Last reply 28 Sept 2022, 10:18
                                    3
                                    • J jsulm
                                      28 Sept 2022, 10:09

                                      @RuWex I answered this question in my first post in this thread: "You should use layouts to position widgets, see https://doc.qt.io/qt-6/layout.html"

                                      R Offline
                                      R Offline
                                      RuWex
                                      wrote on 28 Sept 2022, 10:18 last edited by RuWex
                                      #17

                                      @jsulm ou! thank you!
                                      you had helped me a lot!!

                                      1 Reply Last reply
                                      1

                                      6/17

                                      28 Sept 2022, 08:40

                                      topic:navigator.unread, 11
                                      • Login

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