Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Behind the Scenes
  3. Wiki Discussion
  4. Singleton instance of QSplashScreen
Forum Updated to NodeBB v4.3 + New Features

Singleton instance of QSplashScreen

Scheduled Pinned Locked Moved Wiki Discussion
20 Posts 3 Posters 10.0k 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.
  • D Offline
    D Offline
    DenisKormalev
    wrote on 25 Sept 2010, 18:45 last edited by
    #2

    You can make wrapper class for working with QSplashScreen and use it as singleton.

    1 Reply Last reply
    0
    • P Offline
      P Offline
      prakash02
      wrote on 26 Sept 2010, 14:24 last edited by
      #3

      since i'm a newbie ,could you please explain how to may use of wrapper class.

      1 Reply Last reply
      0
      • D Offline
        D Offline
        DenisKormalev
        wrote on 26 Sept 2010, 14:51 last edited by
        #4

        Just create your own custom singleton-class which will have private QSplashScreen field and two public methods: one for setting this field (from place where you are creating splashscreen) and second for setting message.

        1 Reply Last reply
        0
        • P Offline
          P Offline
          prakash02
          wrote on 27 Sept 2010, 15:42 last edited by
          #5

          Thanks for ur reply..

          I have created the singleton class SplashScreen
          i'm using this
          SplashScreen::getInstance->setMessage();

          to set the message at different files.
          But still i have a doubt where to initialize QApplication.

          1 Reply Last reply
          0
          • D Offline
            D Offline
            DenisKormalev
            wrote on 27 Sept 2010, 16:20 last edited by
            #6

            Mmm, QApplication is commonly initialized in main() method. Maybe you mean QSplashScreen? If yes, than I think it will be ok for you to init it in main() too.

            1 Reply Last reply
            0
            • A Offline
              A Offline
              alexander
              wrote on 28 Sept 2010, 07:59 last edited by
              #7

              @class MySplash : public QSplashScreen
              {
              Q_OBJECT
              public:
              explicit MySplash(QObject parent = 0);
              static MySplash
              instance();

              private:
              MySplash* _inst;
              }@
              .cpp
              @
              MySplash
              MySplash::_inst = 0;
              MySplash* MySplash::instance()
              {
              if ( !_inst )
              _inst = new MySplash();
              return _inst;
              }@

              1 Reply Last reply
              0
              • P Offline
                P Offline
                prakash02
                wrote on 29 Sept 2010, 12:23 last edited by
                #8

                @class SplashScreen : public QSplashScreen{

                public:

                static SplashScreen* getInstance();

                void destroyInstance();
                void SetSplashScreen();
                void SetMessage(const std::wstring& message);
                QString *splashMessage;
                CString progressText;

                private:
                QSplashScreen *hostSplash_;
                SplashScreen() {}

                ~SplashScreen(){}

                static SplashScreen* m_pInstance;

                };@.h file

                1 Reply Last reply
                0
                • P Offline
                  P Offline
                  prakash02
                  wrote on 29 Sept 2010, 12:29 last edited by
                  #9

                  @SplashScreen* SplashScreen::m_pInstance = NULL;

                  SplashScreen* SplashScreen::getInstance() {

                  if(NULL == m_pInstance ) {

                  m_pInstance = new SplashScreen();

                  }
                  return m_pInstance;
                  }

                  void SplashScreen::destroyInstance() {

                  delete m_pInstance;
                  m_pInstance = NULL;
                  }

                  void SplashScreen::SetMessage(const std::wstring& message ) {

                  progressText = message.c_str();
                  char pC = (char)(LPCTSTR)progressText ;
                  splashMessage->append(QString::fromAscii(pC));
                  hostSplash_->showMessage(*splashMessage);

                  }
                  void SplashScreen::SetSplashScreen() {
                  hostSplash_ = new QSplashScreen(QPixmap(":Resource Files/splash.jpg"));
                  }@

                  1 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    alexander
                    wrote on 29 Sept 2010, 12:33 last edited by
                    #10

                    prakash02, and?

                    1 Reply Last reply
                    0
                    • P Offline
                      P Offline
                      prakash02
                      wrote on 29 Sept 2010, 12:35 last edited by
                      #11

                      This is .cpp file.

                      I initialized the QApplication in main function, but my doubt does i can use the SplashScreen instance other than from main class.

                      Any help is appreciable.Thanks in advance.

                      1 Reply Last reply
                      0
                      • A Offline
                        A Offline
                        alexander
                        wrote on 29 Sept 2010, 12:36 last edited by
                        #12

                        prakash02, @SplashScreen* SplashScreen::m_pInstance = NULL;@ it's C style, it's better to use C++ style:
                        @SplashScreen* SplashScreen::m_pInstance = 0;@

                        1 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          alexander
                          wrote on 29 Sept 2010, 12:37 last edited by
                          #13

                          And why do you use std::wstring instead QString?

                          1 Reply Last reply
                          0
                          • P Offline
                            P Offline
                            prakash02
                            wrote on 29 Sept 2010, 12:42 last edited by
                            #14

                            I defined resource file of strings,now i want to use those messages to be display on QSplashScreen when the program execution calls that function which can be on different namespace or on different class.

                            1 Reply Last reply
                            0
                            • D Offline
                              D Offline
                              DenisKormalev
                              wrote on 29 Sept 2010, 12:45 last edited by
                              #15

                              Why do you use CString and std::wstring for setting/storing text? Why not QString? Also using CString and LPCTSTR type will break cross-platform compatibility.

                              1 Reply Last reply
                              0
                              • A Offline
                                A Offline
                                alexander
                                wrote on 29 Sept 2010, 12:48 last edited by
                                #16

                                Denis Kormalev. :)

                                1 Reply Last reply
                                0
                                • D Offline
                                  D Offline
                                  DenisKormalev
                                  wrote on 29 Sept 2010, 12:48 last edited by
                                  #17

                                  2moderators of this section: please move this thread to more correspondent category (Desktop I think)

                                  1 Reply Last reply
                                  0
                                  • A Offline
                                    A Offline
                                    alexander
                                    wrote on 29 Sept 2010, 12:50 last edited by
                                    #18

                                    prakash02, how do you defiine resource file of strings?

                                    1 Reply Last reply
                                    0
                                    • P Offline
                                      P Offline
                                      prakash02
                                      wrote on 29 Sept 2010, 12:52 last edited by
                                      #19

                                      Yes i can use QString, but previously those are used to display on the native windows dialog.Now I want to change those to QT to improve the look and feel.

                                      1 Reply Last reply
                                      0
                                      • A Offline
                                        A Offline
                                        alexander
                                        wrote on 4 Oct 2010, 06:10 last edited by
                                        #20

                                        try to use QObject::tr("") for strings instead string table in resource file.

                                        1 Reply Last reply
                                        0

                                        11/20

                                        29 Sept 2010, 12:35

                                        • Login

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