PyQt Dialog box activateWindow() works, but not when its parent window is open
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
add a comment |
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
add a comment |
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
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
python-2.7 pyqt4
asked Nov 13 '18 at 18:50
Ben QuigleyBen Quigley
382112
382112
add a comment |
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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