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. Qt first project
Forum Updated to NodeBB v4.3 + New Features

Qt first project

Scheduled Pinned Locked Moved Qt Creator and other tools
59 Posts 7 Posters 24.9k Views 5 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.
  • N Offline
    N Offline
    nick784512
    wrote on last edited by
    #31

    In main.cpp?

    jsulmJ 1 Reply Last reply
    0
    • N nick784512

      In main.cpp?

      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #32

      @nick784512 I would suggest you to create a simple widgets application and play a bit with it. You will see how Qt widgets applications are usually implemented. See http://doc.qt.io/qtcreator/creator-writing-program.html
      Asking others to send you an implementation is not really the right way to learn. Best is "learning by doing" and asking specific questions if you're stuck.

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

      1 Reply Last reply
      1
      • N Offline
        N Offline
        nick784512
        wrote on last edited by nick784512
        #33

        I have tried this one: https://www.youtube.com/watch?v=UD78xyKbrfk
        and I connected the arduino to the COM3 with a program that sends 2 3 2 3... but the Qt program does not display the 2 3 2 3 ....

        mrjjM 1 Reply Last reply
        0
        • N nick784512

          I have tried this one: https://www.youtube.com/watch?v=UD78xyKbrfk
          and I connected the arduino to the COM3 with a program that sends 2 3 2 3... but the Qt program does not display the 2 3 2 3 ....

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

          @nick784512
          In that video, he mere set the text he gets to a QLabel
          MainWindow::serialReceived .
          If it should respond to anything you must program it yourself.

          Please show what you changed it into to reply ? :)

          1 Reply Last reply
          0
          • N Offline
            N Offline
            nick784512
            wrote on last edited by
            #35

            $$$$$$$$$$$$$$$serialGui.pro$$$$$$$$$$$$$$$$$$

            #-------------------------------------------------

            Project created by QtCreator 2016-12-06T15:42:10

            #-------------------------------------------------

            QT += core gui serialport

            greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

            TARGET = serialGui
            TEMPLATE = app

            SOURCES += main.cpp
            mainwindow.cpp

            HEADERS += mainwindow.h

            FORMS += mainwindow.ui

            $$$$$$$$$$$$$$$$$$mainwindow.h$$$$$$$$$$$$$$$$$$$$$$$$$

            #ifndef MAINWINDOW_H
            #define MAINWINDOW_H

            #include <QMainWindow>

            namespace Ui {
            class MainWindow;
            }

            class MainWindow : public QMainWindow
            {
            Q_OBJECT

            public:
            explicit MainWindow(QWidget *parent = 0);
            ~MainWindow();

            private slots:
            void serialReceived();

            private:
            Ui::MainWindow *ui;
            };

            #endif // MAINWINDOW_H

            $$$$$$$$$$$$$$$$$$$$main.cpp$$$$$$$$$$$$$$$$$$$$$$$$$$$

            #include "mainwindow.h"
            #include <QApplication>

            int main(int argc, char *argv[])
            {
            QApplication a(argc, argv);
            MainWindow w;
            w.show();

            return a.exec();
            

            }

            $$$$$$$$$$$$$$$$$$$mainwindow.cpp$$$$$$$$$$$$$$$$$$$$$$$

            #include "mainwindow.h"
            #include "ui_mainwindow.h"
            #include <QtSerialPort>
            #include <QDebug>

            QSerialPort *serial;

            MainWindow::MainWindow(QWidget *parent) :
            QMainWindow(parent),
            ui(new Ui::MainWindow)
            {
            ui->setupUi(this);
            serial = new QSerialPort(this);
            serial->setPortName("COM3");
            serial->setBaudRate(QSerialPort::Baud9600);
            serial->setDataBits(QSerialPort::Data8);
            serial->setParity(QSerialPort::NoParity);
            serial->setStopBits(QSerialPort::OneStop);
            serial->setFlowControl(QSerialPort::NoFlowControl);
            serial->open(QIODevice::ReadWrite);
            serial->write("hello");
            serial->close();
            connect(serial,SIGNAL(readyRead()),this,SLOT(serialReceived()));
            }

            MainWindow::~MainWindow()
            {
            delete ui;
            serial->close();
            }

            void MainWindow::serialReceived()
            {
            QByteArray ba;
            ba=serial->readAll();
            ui->label->setText(ba);
            qDebug()<<ba;
            }

            $$$$$$$$$$$$$$$$mainwindow.ui$$$$$$$$$$$$$$$$$$$$$$$$$

            <?xml version="1.0" encoding="UTF-8"?>
            <ui version="4.0">
            <class>MainWindow</class>
            <widget class="QMainWindow" name="MainWindow">
            <property name="geometry">
            <rect>
            <x>0</x>
            <y>0</y>
            <width>400</width>
            <height>300</height>
            </rect>
            </property>
            <property name="windowTitle">
            <string>MainWindow</string>
            </property>
            <widget class="QWidget" name="centralWidget">
            <widget class="QLabel" name="label">
            <property name="geometry">
            <rect>
            <x>50</x>
            <y>60</y>
            <width>121</width>
            <height>41</height>
            </rect>
            </property>
            <property name="text">
            <string>TextLabel</string>
            </property>
            </widget>
            </widget>
            <widget class="QMenuBar" name="menuBar">
            <property name="geometry">
            <rect>
            <x>0</x>
            <y>0</y>
            <width>400</width>
            <height>21</height>
            </rect>
            </property>
            </widget>
            <widget class="QToolBar" name="mainToolBar">
            <attribute name="toolBarArea">
            <enum>TopToolBarArea</enum>
            </attribute>
            <attribute name="toolBarBreak">
            <bool>false</bool>
            </attribute>
            </widget>
            <widget class="QStatusBar" name="statusBar"/>
            </widget>
            <layoutdefault spacing="6" margin="11"/>
            <resources/>
            <connections/>
            </ui>

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

              Why are you closing your serial port in the constructor ? You won't receive anything doing so.

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

              N 1 Reply Last reply
              1
              • SGaistS SGaist

                Why are you closing your serial port in the constructor ? You won't receive anything doing so.

                N Offline
                N Offline
                nick784512
                wrote on last edited by
                #37

                @SGaist

                I disabled it. Again, nothing received.

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

                  You also don't check whether open was successful.

                  You should rather move the call to write outside the constructor. e.g. in a slot connected to a push button.

                  And make serial a member of MainWindow.

                  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
                  • N Offline
                    N Offline
                    nick784512
                    wrote on last edited by
                    #39

                    Thank you! I cannot understand how the tutorial video in youtube works and the same configuration and coding in my project does not work.

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

                      Did you check that the settings of the serial ports are really what you need to use with your device ?

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

                      N 1 Reply Last reply
                      0
                      • SGaistS SGaist

                        Did you check that the settings of the serial ports are really what you need to use with your device ?

                        N Offline
                        N Offline
                        nick784512
                        wrote on last edited by
                        #41

                        @SGaist

                        1)How do I check if the serial opened succefully?
                        2)I disabled write.
                        3)Do you mean to make it private member of MainWindow?

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #42
                          1. Please read the documentation, the open function returns a boolean value saying whether it succeeded or not
                          2. Where did you put the call to write ?
                          3. Yes

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

                          N 1 Reply Last reply
                          0
                          • SGaistS SGaist
                            1. Please read the documentation, the open function returns a boolean value saying whether it succeeded or not
                            2. Where did you put the call to write ?
                            3. Yes
                            N Offline
                            N Offline
                            nick784512
                            wrote on last edited by nick784512
                            #43

                            @SGaist

                            1)Ok, I will try it.
                            2)I just commented it.
                            3) I wrote QSerialPort *serial; under private and it shows error

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

                              What error ?

                              If you comment the call to write then don't expect anything particular to happen.

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

                              N 1 Reply Last reply
                              0
                              • SGaistS SGaist

                                What error ?

                                If you comment the call to write then don't expect anything particular to happen.

                                N Offline
                                N Offline
                                nick784512
                                wrote on last edited by
                                #45

                                @SGaist

                                C:\Users\geo\Documents\serialGui\mainwindow.h:27: error: 'QSerialPort' does not name a type
                                QSerialPort *serial;
                                ^

                                I don't want to write something in COM from Qt, I want to "listen" from Arduino the sequence 232323... and print on the Qt application

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

                                  It's nothing Qt related, that's basic C++. You really should grab a good book on the matter.

                                  Search for "Forward declaration".

                                  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
                                  • N Offline
                                    N Offline
                                    nick784512
                                    wrote on last edited by
                                    #47

                                    I know C, not C++. Are they so different?

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

                                      There are some key concepts that are pretty different yes.

                                      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
                                      • N Offline
                                        N Offline
                                        nick784512
                                        wrote on last edited by
                                        #49

                                        And I should learn C++ for just this little error?

                                        Can someone help me to make it work?

                                        JKSHJ 1 Reply Last reply
                                        0
                                        • N Offline
                                          N Offline
                                          nick784512
                                          wrote on last edited by nick784512
                                          #50

                                          $$$$$$$$$$$$$$$$$$$$$serialGui.pro$$$$$$$$$$$$$$$$$$$$$$$$$$

                                          #-------------------------------------------------

                                          Project created by QtCreator 2016-12-06T15:42:10

                                          #-------------------------------------------------

                                          QT += core gui serialport

                                          greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

                                          TARGET = serialGui
                                          TEMPLATE = app

                                          SOURCES += main.cpp
                                          mainwindow.cpp

                                          HEADERS += mainwindow.h

                                          FORMS += mainwindow.ui

                                          $$$$$$$$$$$$$$$$$ mainwindow.h $$$$$$$$$$$$$$$$$$$$$$$$$$

                                          #ifndef MAINWINDOW_H
                                          #define MAINWINDOW_H

                                          #include <QMainWindow>

                                          namespace Ui {
                                          class MainWindow;
                                          }

                                          class MainWindow : public QMainWindow
                                          {
                                          Q_OBJECT

                                          public:
                                          explicit MainWindow(QWidget *parent = 0);
                                          ~MainWindow();

                                          private slots:
                                          void serialReceived();

                                          void on_pushButton_released();
                                          

                                          private:
                                          Ui::MainWindow *ui;

                                          QSerialPort *serial;
                                          

                                          };

                                          #endif // MAINWINDOW_H

                                          $$$$$$$$$$$$$$$ main.cpp $$$$$$$$$$$$$$$$$$$$$$$$$

                                          #include "mainwindow.h"
                                          #include <QApplication>

                                          int main(int argc, char *argv[])
                                          {
                                          QApplication a(argc, argv);
                                          MainWindow w;
                                          w.show();

                                          return a.exec();
                                          

                                          }

                                          $$$$$$$$$$$$$$$$$$$$$$ mainwindow.cpp $$$$$$$$$$$$$$$$$$$$$$$$

                                          #include "mainwindow.h"
                                          #include "ui_mainwindow.h"
                                          #include <QtSerialPort>
                                          #include <QDebug>

                                          QSerialPort *serial;

                                          MainWindow::MainWindow(QWidget *parent) :
                                          QMainWindow(parent),
                                          ui(new Ui::MainWindow)
                                          {
                                          if (serial->open(QIODevice::ReadWrite))
                                          {
                                          ui->setupUi(this);
                                          serial = new QSerialPort(this);
                                          serial->setPortName("COM3");
                                          serial->setBaudRate(QSerialPort::Baud9600);
                                          serial->setDataBits(QSerialPort::Data8);
                                          serial->setParity(QSerialPort::NoParity);
                                          serial->setStopBits(QSerialPort::OneStop);
                                          serial->setFlowControl(QSerialPort::NoFlowControl);
                                          serial->open(QIODevice::ReadWrite);
                                          //serial->write("hello");
                                          serial->close();
                                          connect(serial,SIGNAL(readyRead()),this,SLOT(serialReceived()));
                                          }
                                          else
                                          {
                                          QMessageBox::critical(this, tr("Error"), serial->errorString());
                                          showStatusMessage(tr("Open error"));
                                          }
                                          }

                                          MainWindow::~MainWindow()
                                          {
                                          delete ui;
                                          serial->close();
                                          }

                                          void MainWindow::serialReceived()
                                          {
                                          QByteArray ba;
                                          ba=serial->readAll();
                                          ui->label->setText(ba);
                                          //qDebug()<<ba;
                                          }

                                          $$$$$$$$$$$$$$$$$$$ mainwindow.ui $$$$$$$$$$$$$$$$$$$$$$$$$$

                                          <?xml version="1.0" encoding="UTF-8"?>
                                          <ui version="4.0">
                                          <class>MainWindow</class>
                                          <widget class="QMainWindow" name="MainWindow">
                                          <property name="geometry">
                                          <rect>
                                          <x>0</x>
                                          <y>0</y>
                                          <width>400</width>
                                          <height>300</height>
                                          </rect>
                                          </property>
                                          <property name="windowTitle">
                                          <string>MainWindow</string>
                                          </property>
                                          <widget class="QWidget" name="centralWidget">
                                          <widget class="QLabel" name="label">
                                          <property name="geometry">
                                          <rect>
                                          <x>50</x>
                                          <y>60</y>
                                          <width>121</width>
                                          <height>41</height>
                                          </rect>
                                          </property>
                                          <property name="text">
                                          <string>TextLabel</string>
                                          </property>
                                          </widget>
                                          </widget>
                                          <widget class="QMenuBar" name="menuBar">
                                          <property name="geometry">
                                          <rect>
                                          <x>0</x>
                                          <y>0</y>
                                          <width>400</width>
                                          <height>21</height>
                                          </rect>
                                          </property>
                                          </widget>
                                          <widget class="QToolBar" name="mainToolBar">
                                          <attribute name="toolBarArea">
                                          <enum>TopToolBarArea</enum>
                                          </attribute>
                                          <attribute name="toolBarBreak">
                                          <bool>false</bool>
                                          </attribute>
                                          </widget>
                                          <widget class="QStatusBar" name="statusBar"/>
                                          </widget>
                                          <layoutdefault spacing="6" margin="11"/>
                                          <resources/>
                                          <connections/>
                                          </ui>

                                          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