Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. QByteArray Initialization

QByteArray Initialization

Scheduled Pinned Locked Moved Solved Mobile and Embedded
17 Posts 7 Posters 20.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.
  • V vivekyuvan

    Hi@mostefa

    QByteArray m_data = QByteArray("\x0c\x06\x04\x04\x02\x00",6);
    

    The Error message gone and I got the output thanks. But I want to send the array to emit signal? is that possible ? I am newbie to QT soft/Development guide me to resolve this problem

    M Offline
    M Offline
    mostefa
    wrote on last edited by
    #8

    @vivekyuvan said in QByteArray Initialization:

    Hi@mostefa The Error message gone and I got the output thanks. But I want to send the array to emit signal? is that possible ? I am newbie to QT soft/Development guide me to resolve this problem

    You can actually send array in signal,

    let's say you have the following signal :

    void sendByteArray(QByteArray);// on your .h file
    

    inside your testArrayInitialization you can do something like this :

    QByteArray m_data = QByteArray("\x0c\x06\x04\x04\x02\x00",6);
    emit sendByteArray(m_data);
    

    If this is not what you want , can you explain what you want to do?

    1 Reply Last reply
    6
    • V Offline
      V Offline
      vivekyuvan
      wrote on last edited by
      #9

      @mostefa thanks The problem is solved

      1 Reply Last reply
      0
      • M Offline
        M Offline
        mostefa
        wrote on last edited by mostefa
        #10

        You are welcome =) , you can change the state of your post to solved

        1 Reply Last reply
        0
        • T Offline
          T Offline
          titan83
          wrote on last edited by
          #11

          What about:

          QByteArray text = QByteArray::fromHex("517420697320677265617421");
          
          jsulmJ 1 Reply Last reply
          1
          • T titan83

            What about:

            QByteArray text = QByteArray::fromHex("517420697320677265617421");
            
            jsulmJ Online
            jsulmJ Online
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #12

            @titan83 This is just a string containing ASCII characters.
            It should be like @mostefa shown:

            QByteArray m_data = QByteArray("\x0c\x06\x04\x04\x02\x00",6);
            

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

            V 1 Reply Last reply
            3
            • joaopagottoJ Offline
              joaopagottoJ Offline
              joaopagotto
              wrote on last edited by
              #13

              Hi friend, use this:

              #include <QCoreApplication>
              
              int main(int argc, char *argv[])
              {
                 QCoreApplication a(argc, argv);
              
                 QByteArray data;
              
                 data.append((char)0x0c);
                 data.append((char)0x06);
                 data.append((char)0x04);
                 data.append((char)0x04);
                 data.append((char)0x02);
                 data.append((char)0x00);
                 data.append((char)0xFF);
              
                 printf("%d\n", data.size());
                 printf("%s\n", data.toHex().toStdString().c_str());
              
                 return a.exec();   
              }
              
              jsulmJ 1 Reply Last reply
              0
              • joaopagottoJ joaopagotto

                Hi friend, use this:

                #include <QCoreApplication>
                
                int main(int argc, char *argv[])
                {
                   QCoreApplication a(argc, argv);
                
                   QByteArray data;
                
                   data.append((char)0x0c);
                   data.append((char)0x06);
                   data.append((char)0x04);
                   data.append((char)0x04);
                   data.append((char)0x02);
                   data.append((char)0x00);
                   data.append((char)0xFF);
                
                   printf("%d\n", data.size());
                   printf("%s\n", data.toHex().toStdString().c_str());
                
                   return a.exec();   
                }
                
                jsulmJ Online
                jsulmJ Online
                jsulm
                Lifetime Qt Champion
                wrote on last edited by jsulm
                #14

                @joaopagotto This is actually the same he already did. He asked for something like this or similar:

                QByteArray m_data{0x0c, 0x06, 0x04, 0x04, 0x02, 0x00};
                

                Also there is no need to use printf in C++. Instead of

                printf("%d\n", data.size());
                

                you can just write

                qDebug() << data.size();
                

                or C++ without Qt

                std::cout << data.size();
                

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

                1 Reply Last reply
                2
                • jsulmJ jsulm

                  @titan83 This is just a string containing ASCII characters.
                  It should be like @mostefa shown:

                  QByteArray m_data = QByteArray("\x0c\x06\x04\x04\x02\x00",6);
                  
                  V Offline
                  V Offline
                  vivekyuvan
                  wrote on last edited by vivekyuvan
                  #15
                  This post is deleted!
                  1 Reply Last reply
                  0
                  • aha_1980A Offline
                    aha_1980A Offline
                    aha_1980
                    Lifetime Qt Champion
                    wrote on last edited by
                    #16

                    @jsulm said in QByteArray Initialization:

                    @titan83 This is just a string containing ASCII characters.

                    Of course @titan83 has a point here. His string is made of ASCII characters, but he uses QByteArray::fromHex(). This may not be the fastest operation, but allows to read the data from UI or an ASCII file, for example.

                    Qt has to stay free or it will die.

                    1 Reply Last reply
                    0
                    • D Offline
                      D Offline
                      delverdl
                      wrote on last edited by
                      #17

                      You can basically use a C++11 initializer list the following way (I've added a char higher than 0x7f and initializtion by variables):

                      char        v1 = 0x06, v2 = 0x04;
                      QByteArray  ba(std::begin<char>({0x0c, v1, v2, v2, 0x02, 0x00, '\xf3'}), 7);
                      
                      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