Как сделать так, чтобы окно `Tool` всегда было над 2 или более главными окнами?

Быстрый вопрос

В проекте QT C ++ есть 2 основных окна (фокус может быть независимо установлен для любого из них) и tool окно, которое должно быть сверху 2 главных окон.

Как реализовать такую ​​функцию?

Подробный вопрос:

Для одного главного окна и одного окна инструментов довольно легко решить:

#include <QApplication>
#include <QWidget>

int main( int n, char* args[])
{
QApplication app(n, args);
QWidget mainWindow;
QWidget subWindow(&mainWindow);
subWindow.setWindowFlags(subWindow.windowFlags() | Qt::Tool);
mainWindow.show();
subWindow.show();return app.exec();
}
  • Главное окно всегда находится под окном инструмента.
  • Возможно взаимодействие с главным окном
  • сворачивание / закрытие главного окна повлияет на окно инструмента
  • Другое приложение может закрывать главное окно или оба окна (они не самые лучшие)

Я хотел бы ту же функцию, но с 2 основными окнами. Представьте себе видеоплеер, в котором окно инструментов обеспечивает управление воспроизведением и остановкой обоих изображений:

  • Каждое главное окно имеет одинаковый вес фокуса: фокус может быть отдан любому из них, который будет охватывать другое, но не окно инструмента.
  • Инструмент всегда поверх двух других.

1

Решение

Вы можете raise() окно инструментов над остальными.

Это может помочь: void документация QWidget :: повышение ()

Также см. «Примечание» по этой функции.

1

Другие решения

Добавьте Qt :: WindowStaysOnTopHint к флагам

-2

По вопросам рекламы [email protected]