I have several modal dialogs and main dialog where I exec() modal. How do I know if a main window blocked by modal or not?
You can check if there is an active modal dialog with QApplication::activeModalWidget().
Related
I have a mainwindow and a button on this mainWindow that opens a popup.
Now I want to force the focus on that popup.
Right now i am doing
mainwindow.setEnabled(False)
popup.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
when the popup is opened and
mainwindow.setEnabled(True)
when the popup is closed, but that does not affect the focus.
Is there another way, than to catch the signal that the mainwindow got the focus and force it back to the popup?
Thanks to a comment I was able to solve it myself (and it was quite easy):
popup.setWindowModality(QtCore.Qt.ApplicationModal)
link
Scenario:
Enter a keyword (Position) in a textbox
press Tab or click on the next element
A window popup appears
a list of position matching the criteria will be listed
click the required record
Popup window closes automatically
Alert will be displayed
have click on ok button of alert.
switch to main window and check the position details
Question :- i found many solutions in the site but all are about performing actions on window popup and close the popup then switch to alert or main browser
but my application closes the popup window automatically after selection,hence i cannot use the driver.close() or driver.switchto.defaultContent().
If i dont close the driver (for popup) im not able to identify the next alert displayed after popup.
if i switch directly to mainwindhandle, the alert dismiss is happening instead of accept.
Please anyone who know how to switch from window popup to alert without popup close help is needed...
Thanks ....
If alert dismiss is happening when you are trying to accept it, why don't you use alert.dismiss(), it will probably accept the alert in your context.
When you switch to the popup window, the driver focus is on the popup window. What you might want to do is, just after clicking the required record, switch to the main window then accept the alert.
This must be helpful for you . From your questions, Even after your pop up closes automatically you must be able to access your parent window element by switching back to it. There is no need of driver.close() all the time. Here is the code,
// do something with the pop up and it closes automatically here.
driver.switchTo().defaultContent();
driver.switchTo().frame("your parent window mainframe"));
// try to access your parent window element here
I need to know in my app if a modal window is opened when I click on a button.
So I'm searching for a method which permits to know if a modal window is opened in my application or no, and which returns the window (or NULL)
Is it possible?
See QApplication's static activeModalWidget
I have next problem:
I have one modal dialog over main app, but I need to show help dialog of that modal dialog in front of anything (even that modal dialog).
Is there a way to accomplish this without making my modal dialog non-modal.
Thanks
If the help dialog would be in front of the modal dialog, how could the user close the modal dialog? The user could not interact with the help dialog in any way. I wouldn't recommend making a user interface that works differently than all other similar interfaces with modal dialogs.
Maybe you could move the help text from the help dialog to the modal dialog?
Just create another modal style dialog for the help dialog from within the dialog you've already created. You couldn't select select help from anything but that anyway.
I am using the AJAX modalpopupextender and I have an iframe embedded in the modal popup. I need to be able to reference the parent window (the window from which the modal popup was launched) to reload/change the URL when certain events on the modal popup are fired. I have tried window. top, window.parent, opener, root, etc., and have had no success. Any help would be appreciated.
Something along the lines of:
self.parent.opener
I've created a modal popup a bit like that in the past, and that selector enabled me to start mucking around with the DOM on the page that opened the window.
See more here or here