Вот что написал, устраивает все, кроме того, что мышь перехватывается:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QKeyEvent>
#include <QGraphicsDropShadowEffect>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowFlags(Qt::Window
| Qt::WindowStaysOnTopHint
| Qt::X11BypassWindowManagerHint
| Qt::FramelessWindowHint);
setAttribute(Qt::WA_NoSystemBackground, true);
setAttribute(Qt::WA_TranslucentBackground, true);
setAttribute(Qt::WA_TransparentForMouseEvents, true);
QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect(this);
effect->setBlurRadius(0);
effect->setColor(QColor("#000000"));
effect->setOffset(1,1);
ui->label->setGraphicsEffect(effect);
QString fonttemplate = tr("<font color='%1'>%2</font>");
ui->label->setText(fonttemplate.arg("#00FF00", "OSD Message"));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Escape) {
qApp->quit();
}
}
void MainWindow::mousePressEvent ( QMouseEvent * event )
{
if( event->button())
{
qApp->quit();
}
}
Но ведь есть же способ какой-то. Как мониторы рисуют поверх всех окон, когда кнопку настройки нажмешь?