Keeping dialogs on top

It's easy to lose track of windows that pop up in front of QGIS. As soon as the user changes focus to move the main QGIS application window, your dialog can disappear behind it, forcing the user to rearrange their whole desktop to find the smaller window again. Fortunately, Qt has a window setting called hint, which allows you to force a window to stay on top. This type of dialog is called a modal dialog. In this recipe, we'll create a message dialog using hint.

Getting ready

Open the QGIS Python Console by selecting the Plugins menu and then clicking on Python Console.

How to do it...

In this recipe, we will create a simple message dialog and set it to stay on top, as follows:

  1. First, we import the Qt GUI and QGIS core libraries:
    from PyQt4.QtGui import *
    from PyQt4.QtCore import *
    
  2. Next, we create the text for our message:
    msg = "   This window will always stay on top."
    
  3. Now, we create our dialog and specify the message and hint:
    lbl = QLabel(msg, None, Qt.WindowStaysOnTopHint)
    
  4. We can resize and show the dialog:
    lbl.resize(400,400)
    lbl.show()
    
  5. Click on the main QGIS application window to change the window focus and verify that the dialog stays on top of QGIS.

How it works...

This simple technique can help to ensure that a user addresses an important dialog before moving on.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset