Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Q_DISABLE_COPY(Systeminfo),'Systeminfo' does not name a type
Forum Updated to NodeBB v4.3 + New Features

Q_DISABLE_COPY(Systeminfo),'Systeminfo' does not name a type

Scheduled Pinned Locked Moved Solved General and Desktop
16 Posts 4 Posters 1.2k Views 1 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.
  • S Offline
    S Offline
    shree_121
    wrote on last edited by
    #5

    now i am getting error as 'SystemInfo' has not been declared .

    1 Reply Last reply
    0
    • Christian EhrlicherC Offline
      Christian EhrlicherC Offline
      Christian Ehrlicher
      Lifetime Qt Champion
      wrote on last edited by
      #6

      @shree_121 said in Q_DISABLE_COPY(Systeminfo),'Systeminfo' does not name a type:

      now i am getting error as 'SystemInfo' has not been declared .

      Then you've another problem somewhere else - please show the complete error message and also make sure that no other header defines 'SYSTEMINFO_H'

      Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
      Visit the Qt Academy at https://academy.qt.io/catalog

      1 Reply Last reply
      0
      • S Offline
        S Offline
        shree_121
        wrote on last edited by
        #7

        @Christian-Ehrlicher, @mrjj thank you so much now it built successfully, Can you tell me how can i print my OS kernel type in console using QString SystemInfo::kernelType() const.

        mrjjM 1 Reply Last reply
        0
        • S shree_121

          @Christian-Ehrlicher, @mrjj thank you so much now it built successfully, Can you tell me how can i print my OS kernel type in console using QString SystemInfo::kernelType() const.

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

          @shree_121
          use std:.cout ?
          if console app ?
          or qDebug()

          1 Reply Last reply
          0
          • S Offline
            S Offline
            shree_121
            wrote on last edited by shree_121
            #9

            ohh i used std::cout(console application) but exactly i am not sure where i have to write. Do i have to use signal and slot in main.cpp to execute QString SystemInfo::kernelType() const in systeminfo.cpp. please reply it will really help me.

            JonBJ 1 Reply Last reply
            0
            • mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #10

              Hi
              its just a function call so no need for signal or anything complex.
              Note that std::xxx is buffered with Qt and you must flush it to print at once.

              std::cout << "my type=" << QSysInfo::kernelType().toStdString() << std::flush;

              this is for the Qt class. but its the same syntax with your wrapper.

              1 Reply Last reply
              1
              • S shree_121

                ohh i used std::cout(console application) but exactly i am not sure where i have to write. Do i have to use signal and slot in main.cpp to execute QString SystemInfo::kernelType() const in systeminfo.cpp. please reply it will really help me.

                JonBJ Offline
                JonBJ Offline
                JonB
                wrote on last edited by JonB
                #11

                @shree_121
                No signals/slots. Did you try something like:

                SystemInfo si;
                std::cout << si.kernelType().toStdString() << std::flush;
                

                As an architectural comment: all the methods of Qt's QSysInfo are static. Not sure what you are trying to add by creating a wrapper class deriving from QObject, requiring instantiating and with a QObject parent, etc. For example, you could never have written your SystemInfo class and simply called

                std::cout << SystemInfo::kernelType().toStdString() << std::flush;
                

                Up to you.

                @mrjj

                but its the same syntax with your wrapper.

                Similar, but the way he's written it a SystemInfo instance will need creating to call his methods.

                mrjjM 1 Reply Last reply
                2
                • JonBJ JonB

                  @shree_121
                  No signals/slots. Did you try something like:

                  SystemInfo si;
                  std::cout << si.kernelType().toStdString() << std::flush;
                  

                  As an architectural comment: all the methods of Qt's QSysInfo are static. Not sure what you are trying to add by creating a wrapper class deriving from QObject, requiring instantiating and with a QObject parent, etc. For example, you could never have written your SystemInfo class and simply called

                  std::cout << SystemInfo::kernelType().toStdString() << std::flush;
                  

                  Up to you.

                  @mrjj

                  but its the same syntax with your wrapper.

                  Similar, but the way he's written it a SystemInfo instance will need creating to call his methods.

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

                  @jonb
                  thx for clearing up the difference between needing an instance and having static functions. :)
                  Its an important distinction.

                  JonBJ 1 Reply Last reply
                  0
                  • mrjjM mrjj

                    @jonb
                    thx for clearing up the difference between needing an instance and having static functions. :)
                    Its an important distinction.

                    JonBJ Offline
                    JonBJ Offline
                    JonB
                    wrote on last edited by JonB
                    #13

                    @mrjj
                    The OP's instance approach would be fine if/when he has something to put in the instance to make it have a point. He may well do that, just at the moment there is no indication of what he might store in it, nor what connection it would have to a QObject or parent. Anyway I just mentioned so that he is aware he will need to create an instance, which he might not be.

                    mrjjM 1 Reply Last reply
                    0
                    • JonBJ JonB

                      @mrjj
                      The OP's instance approach would be fine if/when he has something to put in the instance to make it have a point. He may well do that, just at the moment there is no indication of what he might store in it, nor what connection it would have to a QObject or parent. Anyway I just mentioned so that he is aware he will need to create an instance, which he might not be.

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

                      @jonb
                      Indeed.
                      Also, such wrapper would be useful for exposing it to QML.

                      JonBJ 1 Reply Last reply
                      0
                      • mrjjM mrjj

                        @jonb
                        Indeed.
                        Also, such wrapper would be useful for exposing it to QML.

                        JonBJ Offline
                        JonBJ Offline
                        JonB
                        wrote on last edited by
                        #15

                        @mrjj said in Q_DISABLE_COPY(Systeminfo),'Systeminfo' does not name a type:

                        Also, such wrapper would be useful for exposing it to QML.

                        Ah, that I would not have known. As I said, OP may have his reasons.

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          shree_121
                          wrote on last edited by
                          #16

                          @mrjj , @JonB Both ways worked for me. Thank you.

                          1 Reply Last reply
                          1

                          • Login

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