Как открыть новое окно после двойного щелчка, чтобы оно стало активным? - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь сделать, казалось бы, простую вещь: после двойного щелчка в одном окне я хочу открыть второе окно верхнего уровня (немодальное) и активировать его.Однако, что бы я ни делал, второе окно не активируется, фокус остается в первом окне.

Вот минимальный пример:

import QtQuick 2.11
import QtQuick.Controls 2.4

ApplicationWindow {
    id: root
    height: 480
    width: 640
    visible: true

    MouseArea {
        anchors.fill: parent
        onDoubleClicked: {
            var w = otherWindowComponent.createObject(root)
            w.show()
            w.requestActivate() // same effect when removed
        }
    }

    Component {
        id: otherWindowComponent
        ApplicationWindow {
            id: child
            width: 400
            height: 300

            Rectangle {
                color: "blue"
                width: 100
                height: 100
                focus: true
            }
        }
    }
}

Я что-то упустил?Спасибо!

UPD: немного дополнительной информации:

  1. Я в Windows 10 64-битная
  2. Когда я заменяю onDoubleClicked на onClicked, окно получаетактивируется, как и ожидалось.

1 Ответ

0 голосов
/ 17 ноября 2018

Возможно, это ошибка Windows, в Linux она работает правильно. Поэтому обходной путь - установить фокус с помощью таймера через несколько миллисекунд после открытия окна.

...