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

Singleton instance of QSplashScreen

Scheduled Pinned Locked Moved Wiki Discussion
20 Posts 3 Posters 9.8k 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.
  • D Offline
    D Offline
    DenisKormalev
    wrote on 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 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 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 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 last edited by
            #10

            prakash02, and?

            1 Reply Last reply
            0
            • P Offline
              P Offline
              prakash02
              wrote on 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 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 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 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 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 last edited by
                        #16

                        Denis Kormalev. :)

                        1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          DenisKormalev
                          wrote on 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 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 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 last edited by
                                #20

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

                                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