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

SplashScreen stay on TaskManager

Scheduled Pinned Locked Moved Unsolved General and Desktop
splashscreentask manager
29 Posts 3 Posters 10.5k Views 3 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.
  • M mrjj
    1 Jan 2017, 17:20

    @QtA_
    Ok, "(without windows form)" means with no borders or caption etc?

    I think you can use splashscreen for this but not sure its really needed.

    Will it be sort of a class others can use , as a super splashscreen thing or
    what is the goal ?

    Well you current issue can be fixed by calling apps quit() when you want the app to exit.
    like 2 timers. one call close for splashscreen and other call quit()
    but it all depends on how u want it to work.

    Q Offline
    Q Offline
    QtA_
    wrote on 1 Jan 2017, 17:31 last edited by
    #7

    @mrjj said in SplashScreen stay on TaskManager:

    @QtA_
    Ok, "(without windows form)" means with no borders or caption etc?

    I think you can use splashscreen for this but not sure its really needed.

    Will it be sort of a class others can use , as a super splashscreen thing or
    what is the goal ?

    Well you current issue can be fixed by calling apps quit() when you want the app to exit.
    like 2 timers. one call close for splashscreen and other call quit()
    but it all depends on how u want it to work.

    that's why I'm here :)

    I'm a biginner with C++, so need to understand manything actually.
    my english is also not very good, but its ok I think. :)

    The goal should be something like this:

    1. create an EXE allowing parameters to show splashscreen.

    ex:
    mysplash.exe "c:/my images/logo1.png" /d:3 /fi:1 /fo:1

    wich:
    /d = delay
    /fi = fade in time delay
    /fo = fade out time delay

    then,...few version after,...allowing to execute splash with mutliple image running to make an animated splash with PNG files.. :)

    M 1 Reply Last reply 1 Jan 2017, 17:36
    0
    • Q QtA_
      1 Jan 2017, 17:31

      @mrjj said in SplashScreen stay on TaskManager:

      @QtA_
      Ok, "(without windows form)" means with no borders or caption etc?

      I think you can use splashscreen for this but not sure its really needed.

      Will it be sort of a class others can use , as a super splashscreen thing or
      what is the goal ?

      Well you current issue can be fixed by calling apps quit() when you want the app to exit.
      like 2 timers. one call close for splashscreen and other call quit()
      but it all depends on how u want it to work.

      that's why I'm here :)

      I'm a biginner with C++, so need to understand manything actually.
      my english is also not very good, but its ok I think. :)

      The goal should be something like this:

      1. create an EXE allowing parameters to show splashscreen.

      ex:
      mysplash.exe "c:/my images/logo1.png" /d:3 /fi:1 /fo:1

      wich:
      /d = delay
      /fi = fade in time delay
      /fo = fade out time delay

      then,...few version after,...allowing to execute splash with mutliple image running to make an animated splash with PNG files.. :)

      M Offline
      M Offline
      mrjj
      Lifetime Qt Champion
      wrote on 1 Jan 2017, 17:36 last edited by
      #8

      @QtA_
      ahh, sort of fancy app loader. :)
      well that is a fun project.

      You english is fine. :)

      That should be possible for a first project. Good luck and feel free to ask.

      Q 1 Reply Last reply 1 Jan 2017, 17:38
      0
      • M mrjj
        1 Jan 2017, 17:36

        @QtA_
        ahh, sort of fancy app loader. :)
        well that is a fun project.

        You english is fine. :)

        That should be possible for a first project. Good luck and feel free to ask.

        Q Offline
        Q Offline
        QtA_
        wrote on 1 Jan 2017, 17:38 last edited by
        #9

        @mrjj said in SplashScreen stay on TaskManager:

        @QtA_
        ahh, sort of fancy app loader. :)
        well that is a fun project.

        You english is fine. :)

        That should be possible for a first project. Good luck and feel free to ask.

        Thank you very much,..
        I'm a fancy girl :)

        return a.quit();
        

        do not close the process,..do I miss something ?

        M 1 Reply Last reply 1 Jan 2017, 17:40
        0
        • Q QtA_
          1 Jan 2017, 17:38

          @mrjj said in SplashScreen stay on TaskManager:

          @QtA_
          ahh, sort of fancy app loader. :)
          well that is a fun project.

          You english is fine. :)

          That should be possible for a first project. Good luck and feel free to ask.

          Thank you very much,..
          I'm a fancy girl :)

          return a.quit();
          

          do not close the process,..do I miss something ?

          M Offline
          M Offline
          mrjj
          Lifetime Qt Champion
          wrote on 1 Jan 2017, 17:40 last edited by mrjj 1 Jan 2017, 17:43
          #10

          @QtA_
          Hi
          do you now have
          return a.exec();
          return a.quit();

          ?

          it stays inside a.exec().

          you can try
          QTimer::singleShot(2500,&app,SLOT(quit()));
          should kill it all after 2,5 secs.
          U must keep return a.exec(); to use timers. Its drives the eventloop :)

          Q 1 Reply Last reply 1 Jan 2017, 17:43
          0
          • M mrjj
            1 Jan 2017, 17:40

            @QtA_
            Hi
            do you now have
            return a.exec();
            return a.quit();

            ?

            it stays inside a.exec().

            you can try
            QTimer::singleShot(2500,&app,SLOT(quit()));
            should kill it all after 2,5 secs.
            U must keep return a.exec(); to use timers. Its drives the eventloop :)

            Q Offline
            Q Offline
            QtA_
            wrote on 1 Jan 2017, 17:43 last edited by
            #11

            @mrjj said in SplashScreen stay on TaskManager:

            @QtA_
            Hi
            do you now have
            return a.exec();
            return a.quit();

            ?

            it stays inside a.exec().

            yes

            M 1 Reply Last reply 1 Jan 2017, 17:44
            0
            • Q QtA_
              1 Jan 2017, 17:43

              @mrjj said in SplashScreen stay on TaskManager:

              @QtA_
              Hi
              do you now have
              return a.exec();
              return a.quit();

              ?

              it stays inside a.exec().

              yes

              M Offline
              M Offline
              mrjj
              Lifetime Qt Champion
              wrote on 1 Jan 2017, 17:44 last edited by
              #12

              @QtA_
              You need to send it signal to quit.
              Try
              QTimer::singleShot(2500,&app,SLOT(quit()));
              dont remove the exec() part.
              its very important to use signals.

              1 Reply Last reply
              0
              • Q Offline
                Q Offline
                QtA_
                wrote on 1 Jan 2017, 17:51 last edited by
                #13

                nope,..:( still active.

                #include <QApplication>
                #include <QSplashScreen>
                #include <QTimer>
                
                int main(int argc, char *argv[])
                {
                    QApplication a(argc, argv);
                    QSplashScreen *splash=new QSplashScreen;
                    splash->setPixmap(QPixmap ("C:/Users/public/test/Logo.png"));
                    splash->show();
                    QTimer::singleShot(2500,splash,SLOT(close()));
                    QTimer::singleShot(2500,splash,SLOT(quit()));
                
                    return a.exec();
                    return a.quit();
                
                }
                
                M 1 Reply Last reply 1 Jan 2017, 17:58
                0
                • Q QtA_
                  1 Jan 2017, 17:51

                  nope,..:( still active.

                  #include <QApplication>
                  #include <QSplashScreen>
                  #include <QTimer>
                  
                  int main(int argc, char *argv[])
                  {
                      QApplication a(argc, argv);
                      QSplashScreen *splash=new QSplashScreen;
                      splash->setPixmap(QPixmap ("C:/Users/public/test/Logo.png"));
                      splash->show();
                      QTimer::singleShot(2500,splash,SLOT(close()));
                      QTimer::singleShot(2500,splash,SLOT(quit()));
                  
                      return a.exec();
                      return a.quit();
                  
                  }
                  
                  M Offline
                  M Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on 1 Jan 2017, 17:58 last edited by mrjj 1 Jan 2017, 18:02
                  #14

                  @QtA_
                  You are asking it wrongly :)

                  QTimer::singleShot(2500,splash,SLOT(quit())); <<<< wrong object. should be &app

                  you are asking the timer to call quit() on splash, which splash dont have.

                  QTimer::singleShot(2500,&app,SLOT(quit()));

                  Update:
                  Also
                  The return statement will make it leave a function
                  so

                  return a.exec();
                  return a.quit(); <<< u can never, ever get here :)

                  1 Reply Last reply
                  0
                  • Q Offline
                    Q Offline
                    QtA_
                    wrote on 1 Jan 2017, 18:05 last edited by
                    #15

                    Thank you very much !! :)
                    so i've added:

                    QTimer::singleShot(2500,&a,SLOT(quit()));
                    

                    and removed

                    return a.exec();
                    

                    seem to work fine now :)

                    Question...

                    why do I need to put time delay on quit if already the time done ?
                    I mean,..

                    QTimer::singleShot(2500,&a,SLOT(quit()));
                    

                    must be

                    QTimer::singleShot(0,&a,SLOT(quit()));
                    

                    ?

                    M 1 Reply Last reply 1 Jan 2017, 18:07
                    0
                    • Q QtA_
                      1 Jan 2017, 18:05

                      Thank you very much !! :)
                      so i've added:

                      QTimer::singleShot(2500,&a,SLOT(quit()));
                      

                      and removed

                      return a.exec();
                      

                      seem to work fine now :)

                      Question...

                      why do I need to put time delay on quit if already the time done ?
                      I mean,..

                      QTimer::singleShot(2500,&a,SLOT(quit()));
                      

                      must be

                      QTimer::singleShot(0,&a,SLOT(quit()));
                      

                      ?

                      M Offline
                      M Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on 1 Jan 2017, 18:07 last edited by
                      #16

                      @QtA_
                      Hi
                      Np.

                      Does it display long enough with
                      QTimer::singleShot(0,&a,SLOT(quit())); ?

                      Then its ok.

                      1 Reply Last reply
                      0
                      • Q Offline
                        Q Offline
                        QtA_
                        wrote on 1 Jan 2017, 18:10 last edited by
                        #17

                        ok ...I've change the close by the quit.
                        instead adding a new line. :)

                        Thanks again for all your help.
                        Angie xx

                        M 1 Reply Last reply 1 Jan 2017, 18:10
                        0
                        • Q QtA_
                          1 Jan 2017, 18:10

                          ok ...I've change the close by the quit.
                          instead adding a new line. :)

                          Thanks again for all your help.
                          Angie xx

                          M Offline
                          M Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on 1 Jan 2017, 18:10 last edited by
                          #18

                          @QtA_
                          Np. Have fun programming. :)

                          1 Reply Last reply
                          0
                          • C Offline
                            C Offline
                            Chris Kawa
                            Lifetime Qt Champion
                            wrote on 1 Jan 2017, 18:30 last edited by Chris Kawa 1 Jan 2017, 18:40
                            #19

                            You don't need to force the app quit. It's not very flexible in the long run. By default Qt app quits automatically when a last window is closed. This is controlled in two places: on application level with setQuitOnLastWindowClosed (the default is true, so no need to change that). The other place is at the widget level with an attribute Qt::WA_QuitOnClose. This attribute is by default enabled for top level windows i.e. widgets with flag Qt::Window or Qt::Dialog except for certain types, including menus, tooltips and splashscreen.

                            Since a splashscreen is all you have you can just turn the attribute back on:

                            int main(int argc, char *argv[])
                            {
                                QApplication a(argc, argv);
                                QSplashScreen *splash = new QSplashScreen;
                                splash->setAttribute(Qt::WA_QuitOnClose);  // <-- the relevant line
                                splash->setPixmap(QPixmap ("C:/Users/public/test/Logo.png"));
                                splash->show();
                                QTimer::singleShot(2500,splash,SLOT(close()));
                                return a.exec();
                            }
                            

                            Btw. Technically this code leaks memory as you never delete the splash instance. To keep it clean you have couple of options:

                            • manually delete the splash after the call to exec
                            • add WA_DeleteOnClose attribute to the splash
                            • (the easiest and recommended) just create the splash instance on the stack:
                            QSplashScreen splash;
                            splash.setAttribute(Qt::WA_QuitOnClose);
                            splash.setPixmap(QPixmap ("C:/Users/public/test/Logo.png"));
                            splash.show();
                            QTimer::singleShot(2500,&splash,SLOT(close()));
                            
                            M 1 Reply Last reply 1 Jan 2017, 18:41
                            2
                            • C Chris Kawa
                              1 Jan 2017, 18:30

                              You don't need to force the app quit. It's not very flexible in the long run. By default Qt app quits automatically when a last window is closed. This is controlled in two places: on application level with setQuitOnLastWindowClosed (the default is true, so no need to change that). The other place is at the widget level with an attribute Qt::WA_QuitOnClose. This attribute is by default enabled for top level windows i.e. widgets with flag Qt::Window or Qt::Dialog except for certain types, including menus, tooltips and splashscreen.

                              Since a splashscreen is all you have you can just turn the attribute back on:

                              int main(int argc, char *argv[])
                              {
                                  QApplication a(argc, argv);
                                  QSplashScreen *splash = new QSplashScreen;
                                  splash->setAttribute(Qt::WA_QuitOnClose);  // <-- the relevant line
                                  splash->setPixmap(QPixmap ("C:/Users/public/test/Logo.png"));
                                  splash->show();
                                  QTimer::singleShot(2500,splash,SLOT(close()));
                                  return a.exec();
                              }
                              

                              Btw. Technically this code leaks memory as you never delete the splash instance. To keep it clean you have couple of options:

                              • manually delete the splash after the call to exec
                              • add WA_DeleteOnClose attribute to the splash
                              • (the easiest and recommended) just create the splash instance on the stack:
                              QSplashScreen splash;
                              splash.setAttribute(Qt::WA_QuitOnClose);
                              splash.setPixmap(QPixmap ("C:/Users/public/test/Logo.png"));
                              splash.show();
                              QTimer::singleShot(2500,&splash,SLOT(close()));
                              
                              M Offline
                              M Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on 1 Jan 2017, 18:41 last edited by
                              #20

                              @Chris-Kawa
                              Much better with WA_QuitOnClose, indeed. :)

                              Do you know if QSplashScreen can do anything special compared to a plain QWidget in terms
                              of her overall goal? ( sort of fancy launcher )

                              Im not sure if a custom widget is not more fun later when she wants animations and fade in/out effects etc. Of Course she can derive from QSplashScreen but I do wonder if it
                              give anything of benefit for this use case. ?

                              1 Reply Last reply
                              0
                              • Q Offline
                                Q Offline
                                QtA_
                                wrote on 1 Jan 2017, 18:50 last edited by
                                #21

                                Thank you guys,,...
                                it seem to work,..

                                however..many questions in my little brain..

                                splash name is my variable right ?
                                so may I redefine it many times ?

                                #include <QApplication>
                                #include <QSplashScreen>
                                #include <QTimer>
                                
                                int main(int argc, char *argv[])
                                {
                                    QApplication a(argc, argv);
                                    QSplashScreen *splash = new QSplashScreen;
                                    splash->setAttribute(Qt::WA_QuitOnClose);  // <-- the relevant line
                                    splash->setPixmap(QPixmap ("C:/Users/public/test/Logo.png"));
                                    splash->show();
                                    QTimer::singleShot(2500,splash,SLOT(close()));
                                    
                                    splash->setPixmap(QPixmap ("C:/Users/public/test/Logo1.png"));
                                    splash->show();
                                    QTimer::singleShot(2500,splash,SLOT(close()));
                                    
                                    return a.exec();
                                }
                                

                                seem it keep always the last image...

                                1 Reply Last reply
                                0
                                • C Offline
                                  C Offline
                                  Chris Kawa
                                  Lifetime Qt Champion
                                  wrote on 1 Jan 2017, 18:56 last edited by Chris Kawa 1 Jan 2017, 18:58
                                  #22

                                  @mrjj QSplashScreen is pretty basic. It's not well suited for any sort of animations. The easiest route for that would be, indeed, a plain old widget and overriding its paintEvent. Deriving from QSplashScreen would just get in your way.

                                  @QtA_ You're thinking in line, while what happens is event driven. This code QTimer::singleShot(2500,splash,SLOT(close())); doesn't "wait" for 2.5 seconds. It just schedules the slot to fire in 2.5 seconds and moves on immediately. So this:

                                  splash->setPixmap(QPixmap ("C:/Users/public/test/Logo.png"));
                                  splash->show();
                                  QTimer::singleShot(2500,splash,SLOT(close()));
                                  splash->setPixmap(QPixmap ("C:/Users/public/test/Logo1.png"));
                                  

                                  is just the same as this:

                                  splash->setPixmap(QPixmap ("C:/Users/public/test/Logo.png"));
                                  splash->setPixmap(QPixmap ("C:/Users/public/test/Logo1.png"));
                                  splash->show();
                                  QTimer::singleShot(2500,splash,SLOT(close()));
                                  

                                  To make it work like you want to you need to schedule the switch to happen some time later, e.g.

                                  splash->setPixmap(QPixmap ("C:/Users/public/test/Logo.png")); //set initial image
                                  QTimer::singleShot(1000, [&]{ splash->setPixmap(QPixmap ("C:/Users/public/test/Logo1.png")); }); //change it after a second
                                  QTimer::singleShot(2000, [&]{ splash->setPixmap(QPixmap ("C:/Users/public/test/Logo2.png")); }); //change it again after 2 seconds etc.
                                  
                                  splash->show();
                                  QTimer::singleShot(2500,splash,SLOT(close()));
                                  
                                  1 Reply Last reply
                                  2
                                  • Q Offline
                                    Q Offline
                                    QtA_
                                    wrote on 2 Jan 2017, 04:28 last edited by QtA_ 1 Feb 2017, 04:29
                                    #23

                                    ok,...that work great !
                                    my PNG animation is now done.. :) thank you.

                                    However,..there is few questions if you dont mind.
                                    is the [&] mean to execute what is in the bracket ? {}

                                    I understand what i'm doing...but I do not understand yet how, when and why to put sometime bracket, [] sometime <> sometime "" or {}
                                    i'm a little lost on when to use it..
                                    is there any tutorial who explain this syllabus ?
                                    Thanks again for all your help :)

                                    M 1 Reply Last reply 2 Jan 2017, 08:25
                                    0
                                    • Q QtA_
                                      2 Jan 2017, 04:28

                                      ok,...that work great !
                                      my PNG animation is now done.. :) thank you.

                                      However,..there is few questions if you dont mind.
                                      is the [&] mean to execute what is in the bracket ? {}

                                      I understand what i'm doing...but I do not understand yet how, when and why to put sometime bracket, [] sometime <> sometime "" or {}
                                      i'm a little lost on when to use it..
                                      is there any tutorial who explain this syllabus ?
                                      Thanks again for all your help :)

                                      M Offline
                                      M Offline
                                      mrjj
                                      Lifetime Qt Champion
                                      wrote on 2 Jan 2017, 08:25 last edited by mrjj 1 Feb 2017, 08:25
                                      #24

                                      @QtA_ said in SplashScreen stay on TaskManager:
                                      Hi

                                      is the [&] mean to execute what is in the bracket ? {}

                                      Yes its a c++ lambda. Think of it as "in place" function.

                                      QTimer::singleShot(1000, [&]
                                      {
                                      //this is the function body
                                      splash->setPixmap(QPixmap ("C:/Users/public/test/Logo1.png"));
                                      }
                                      );

                                      I understand what i'm doing...but I do not understand yet how, when and why to put sometime bracket, [] sometime <> sometime "" or {}

                                      Oh,  there are many different uses, depending on context.
                                      { } is often used as a block.
                                      if (something)  {
                                      // line 1
                                      // line 2
                                      } 
                                      --
                                      void somefunc() {
                                      }
                                      -----------------------
                                      [] is used with array or lists. 
                                      (and also the lambda syntax)
                                      int list[1000];
                                      int num=list[1];
                                      -----------------------
                                      The <> is often seen with templates. Templates are special c++ thing that allows any type to be used. the compiler will generate the needed code for all used types.
                                      std::vector<int> mylist; // list of ints.
                                      

                                      So its hard to fully answer as its used in many contexts. So you better just ask :)

                                      Q 1 Reply Last reply 6 Jan 2017, 03:55
                                      0
                                      • M mrjj
                                        2 Jan 2017, 08:25

                                        @QtA_ said in SplashScreen stay on TaskManager:
                                        Hi

                                        is the [&] mean to execute what is in the bracket ? {}

                                        Yes its a c++ lambda. Think of it as "in place" function.

                                        QTimer::singleShot(1000, [&]
                                        {
                                        //this is the function body
                                        splash->setPixmap(QPixmap ("C:/Users/public/test/Logo1.png"));
                                        }
                                        );

                                        I understand what i'm doing...but I do not understand yet how, when and why to put sometime bracket, [] sometime <> sometime "" or {}

                                        Oh,  there are many different uses, depending on context.
                                        { } is often used as a block.
                                        if (something)  {
                                        // line 1
                                        // line 2
                                        } 
                                        --
                                        void somefunc() {
                                        }
                                        -----------------------
                                        [] is used with array or lists. 
                                        (and also the lambda syntax)
                                        int list[1000];
                                        int num=list[1];
                                        -----------------------
                                        The <> is often seen with templates. Templates are special c++ thing that allows any type to be used. the compiler will generate the needed code for all used types.
                                        std::vector<int> mylist; // list of ints.
                                        

                                        So its hard to fully answer as its used in many contexts. So you better just ask :)

                                        Q Offline
                                        Q Offline
                                        QtA_
                                        wrote on 6 Jan 2017, 03:55 last edited by QtA_ 1 Jun 2017, 03:59
                                        #25

                                        @mrjj said in SplashScreen stay on TaskManager:

                                        @QtA_ said in SplashScreen stay on TaskManager:
                                        Hi

                                        is the [&] mean to execute what is in the bracket ? {}

                                        Yes its a c++ lambda. Think of it as "in place" function.

                                        QTimer::singleShot(1000, [&]
                                        {
                                        //this is the function body
                                        splash->setPixmap(QPixmap ("C:/Users/public/test/Logo1.png"));
                                        }
                                        );

                                        I understand what i'm doing...but I do not understand yet how, when and why to put sometime bracket, [] sometime <> sometime "" or {}

                                        Oh,  there are many different uses, depending on context.
                                        { } is often used as a block.
                                        if (something)  {
                                        // line 1
                                        // line 2
                                        } 
                                        --
                                        void somefunc() {
                                        }
                                        -----------------------
                                        [] is used with array or lists. 
                                        (and also the lambda syntax)
                                        int list[1000];
                                        int num=list[1];
                                        -----------------------
                                        The <> is often seen with templates. Templates are special c++ thing that allows any type to be used. the compiler will generate the needed code for all used types.
                                        std::vector<int> mylist; // list of ints.
                                        

                                        So its hard to fully answer as its used in many contexts. So you better just ask :)

                                        Thank you very much !
                                        Not sure to understand more....but with practice...i'll figure out.. :)
                                        first,..need to learn what LAMBDA is.. lol ! :)

                                        in fact,..I use Qt beacause I thought that it had an option for dialog transparency..
                                        so by putting an image with invisible dialog will do the trick.. :( bad thinking..

                                        1 Reply Last reply
                                        0
                                        • M Offline
                                          M Offline
                                          mrjj
                                          Lifetime Qt Champion
                                          wrote on 6 Jan 2017, 07:27 last edited by
                                          #26

                                          Hi
                                          No.
                                          Well lambdas are nameless functions. Its like a normal function but has a funny syntax
                                          to be allowed to written "in place".
                                          https://blog.feabhas.com/2014/03/demystifying-c-lambdas/
                                          So where places you would use a pointer to a function, you can now directly give it the function there.

                                          .I use Qt beacause I thought that it had an option for dialog transparency.

                                          Well it does support transparency but it can vary between platforms and windows managers.
                                          :)

                                          1 Reply Last reply
                                          0

                                          16/29

                                          1 Jan 2017, 18:07

                                          • Login

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