А вот с передачей событий типа тапов и жестов через прозрачную область ничего не получается.
Пробовал самые разные варианты, делал окно размером меньше десктопа, включал разрешение SYSTEM_ALERT_WINDOW - никак. Пытался сделать View в JNI коде, но не знаю как получить layout ID моего приложения. Не нашёл работающий способ. Возможно для приложения на Qt его нет. В приложениях на чистой Java для приложения создают layout, описанный в XML, затем делают с его помощью overlay window. С Qt-окнами это не заработало. Если кто знает как получить работающее решение для Qt - пишите.
Также не получается сделать окно с изменяемым размером и нормальной перерисовкой при этом. Если просто масштабировать окно под заданный размер с уменьшением, то вокруг него не перерисовывается фон, за который отвечает уже Android. Способ заставить его перерисовать принудительно тоже не нашёл - для этого нужно получить системный View десктопа Android послать сигнал на необходимость перерисовки. Но получить этот View не удалось. Знатоки Android дали понять, что это невозможно.
И не получилось сделать окно always on top - все описанные для Android способы перепробовал, флаг Qt::WindowStaysOnTopHint для окна устанавливал. Но постоянно окно на экране не сохраняется, при переключении на другое приложение исчезает.
Кстати, атрибуты Qt::WA_NoSystemBackground и Qt::WA_OpaquePaintEvent, а также флаг Qt::FramelessWindowHint на прозрачность окна не влияют. Нужен только флаг Qt::WA_TranslucentBackground, задание цвета палитры и использование прозрачной темы манифесте. При этом установка последнего параметра цвета палитры задаёт полупрозрачность, хорошо получается с уровнем 120.
И ещё трюк - если надо, чтобы виджеты по прозрачному окну перемещались или масштабировались, и фон под окном при этом правильно перерисовывался, то нужно сделать такой код для его paintEvent():
void MainWindow::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPainter::CompositionMode m = painter.compositionMode();
painter.setCompositionMode(QPainter::CompositionMode_Source);
painter.setOpacity(0.0);
painter.fillRect(rect(), Qt::black);
painter.setCompositionMode(m);
}