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 21.8k Views 2 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.
  • V Offline
    V Offline
    vivekyuvan
    wrote on last edited by
    #5

    Hi @mostefa
    Its a test code I want to initalize array in normal C Standard type

    If I initialize qbyte array in Private Slot

    Ex

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

    I got an error See the screen shot ![alt text](0_1505900733317_ErrorScreenShot.png image url)

    M 1 Reply Last reply
    0
    • V vivekyuvan

      Hi @mostefa
      Its a test code I want to initalize array in normal C Standard type

      If I initialize qbyte array in Private Slot

      Ex

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

      I got an error See the screen shot ![alt text](0_1505900733317_ErrorScreenShot.png image url)

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

      @vivekyuvan said in QByteArray Initialization:

      Hi @mostefa
      Its a test code I want to initalize array in normal C Standard type

      If I initialize qbyte array in Private Slot

      Ex

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

      I got an error See the screen shot ![alt text](0_1505900733317_ErrorScreenShot.png image url)

      What if you change this line :

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

      To this following line :

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

      QByteArray Constructor

      V 1 Reply Last reply
      3
      • M mostefa

        @vivekyuvan said in QByteArray Initialization:

        Hi @mostefa
        Its a test code I want to initalize array in normal C Standard type

        If I initialize qbyte array in Private Slot

        Ex

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

        I got an error See the screen shot ![alt text](0_1505900733317_ErrorScreenShot.png image url)

        What if you change this line :

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

        To this following line :

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

        QByteArray Constructor

        V Offline
        V Offline
        vivekyuvan
        wrote on last edited by vivekyuvan
        #7

        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 1 Reply Last reply
        0
        • 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 Offline
                  jsulmJ Offline
                  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 Offline
                      jsulmJ Offline
                      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