PyQt Dialog box activateWindow() works, but not when its parent window is open












0















Our PyQt application's dialog box is called from a Windows Explorer window, and naturally is supposed to jump to the front when it is created. This works great in a vacuum - the dialog window successfully jumps in front of the Explorer window, using the following code:



def bring_to_foreground(qwidget):
qwidget.show()
qwidget.raise_()
qwidget.activateWindow()


However, when the application's main window (which is a parent of the dialog window) is open, the dialog window cannot jump to the front.



Can anyone explain this behavior?



From the PyQt4 documentation, I can see that:




On Windows, if you are calling this when the application is not currently the active one then it will not make it the active window. It will change the color of the taskbar entry to indicate that the window has changed in some way. This is because Microsoft does not allow an application to interrupt what the user is currently doing in another application.




I guess that answers my question, but then why does our function work normally the rest of the time?










share|improve this question



























    0















    Our PyQt application's dialog box is called from a Windows Explorer window, and naturally is supposed to jump to the front when it is created. This works great in a vacuum - the dialog window successfully jumps in front of the Explorer window, using the following code:



    def bring_to_foreground(qwidget):
    qwidget.show()
    qwidget.raise_()
    qwidget.activateWindow()


    However, when the application's main window (which is a parent of the dialog window) is open, the dialog window cannot jump to the front.



    Can anyone explain this behavior?



    From the PyQt4 documentation, I can see that:




    On Windows, if you are calling this when the application is not currently the active one then it will not make it the active window. It will change the color of the taskbar entry to indicate that the window has changed in some way. This is because Microsoft does not allow an application to interrupt what the user is currently doing in another application.




    I guess that answers my question, but then why does our function work normally the rest of the time?










    share|improve this question

























      0












      0








      0








      Our PyQt application's dialog box is called from a Windows Explorer window, and naturally is supposed to jump to the front when it is created. This works great in a vacuum - the dialog window successfully jumps in front of the Explorer window, using the following code:



      def bring_to_foreground(qwidget):
      qwidget.show()
      qwidget.raise_()
      qwidget.activateWindow()


      However, when the application's main window (which is a parent of the dialog window) is open, the dialog window cannot jump to the front.



      Can anyone explain this behavior?



      From the PyQt4 documentation, I can see that:




      On Windows, if you are calling this when the application is not currently the active one then it will not make it the active window. It will change the color of the taskbar entry to indicate that the window has changed in some way. This is because Microsoft does not allow an application to interrupt what the user is currently doing in another application.




      I guess that answers my question, but then why does our function work normally the rest of the time?










      share|improve this question














      Our PyQt application's dialog box is called from a Windows Explorer window, and naturally is supposed to jump to the front when it is created. This works great in a vacuum - the dialog window successfully jumps in front of the Explorer window, using the following code:



      def bring_to_foreground(qwidget):
      qwidget.show()
      qwidget.raise_()
      qwidget.activateWindow()


      However, when the application's main window (which is a parent of the dialog window) is open, the dialog window cannot jump to the front.



      Can anyone explain this behavior?



      From the PyQt4 documentation, I can see that:




      On Windows, if you are calling this when the application is not currently the active one then it will not make it the active window. It will change the color of the taskbar entry to indicate that the window has changed in some way. This is because Microsoft does not allow an application to interrupt what the user is currently doing in another application.




      I guess that answers my question, but then why does our function work normally the rest of the time?







      python-2.7 pyqt4






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 13 '18 at 18:50









      Ben QuigleyBen Quigley

      382112




      382112
























          0






          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53287696%2fpyqt-dialog-box-activatewindow-works-but-not-when-its-parent-window-is-open%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53287696%2fpyqt-dialog-box-activatewindow-works-but-not-when-its-parent-window-is-open%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          The Sandy Post

          Danny Elfman

          Pages that link to "Head v. Amoskeag Manufacturing Co."