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 25.2k 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 nick784512
    #27

    Thank you. Now that I want to make the simple project as I said before. How many files do I need?

    mainwindow.h
    mainwindow.cpp
    main.cpp
    mainwindow.ui

    are all these enough?

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

      Based on your requirements, you only need a QWidget, a QPushButton and a QVBoxLayout to put the button nicely in the widget.

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

        But where will I put the code?

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

          In your QWidget subclass.

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

                                          • Login

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