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

QByteArray Initialization

Scheduled Pinned Locked Moved Solved Mobile and Embedded
17 Posts 7 Posters 20.6k 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 vivekyuvan

    HI @mostefa I got an an error like this below
    error: could not convert '{12, 6, 4, 4, 2, 0}' from '<brace-enclosed initializer list>' to 'QByteArray'
    QByteArray m_data{0x0c, 0x06, 0x04, 0x04, 0x02, 0x00};

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

    @vivekyuvan said in QByteArray Initialization:

    HI @mostefa I got an an error like this below
    error: could not convert '{12, 6, 4, 4, 2, 0}' from '<brace-enclosed initializer list>' to 'QByteArray'
    QByteArray m_data{0x0c, 0x06, 0x04, 0x04, 0x02, 0x00};

    Can you share the code of what you are doing exactly?

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