Problem - Bringing window to foreground (Qt)

Skip to end of metadata
Go to start of metadata

Table of Contents

Overview

When automating multiple applications or a single application with multiple windows it can be useful (or required) to bring one window to the foreground, or to make the non active application active.

The problem with this is that modern operating systems and window managers actively try to prevent that an application makes itself active. And this is something that Squish cannot change.

However, sometimes the following workarounds might work.

Workaround #1: raise() + activateWindow()

In general:

test.py

Also see:

Workaround #2: Create, show and close a QMessageBox

This relies on the side effect that closing a QMessageBox will activate the respective application:

test.py

IMPORTANT - Additional settings for Linux

On Linux you may have to configure the following:

  • System Settings
  • "Window Behavior (possibly under "Look & Feel")
  • Window Behavior
  • Tab Focus

(German: "Fensterverhalten", "Fensterverhalten", "Aktivierung", "Vorbeugung gegen unerwünschte Aktivierung".)

Look for the setting "Focus stealing prevention level" and set it to None.

IMPORTANT - Additional settings for Windows

On Windows you might have to configure the ForegroundLockTimeout (google ForegroundLockTimeout) setting.

Changing this setting may require a reboot or relogin to take effect.

Related Information

Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.