我有 Translucency 的顶级无框架 QMainWindow
。我在窗口的透明部分中有点击(到底层窗口)的不良影响。
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow *window = new MainWindow;
window->setWindowFlags(window->windowFlags() | Qt::FramelessWindowHint);
window->setAttribute(Qt::WA_TranslucentBackground);
QLabel *label = new QLabel("Hello World!");
// window->setStyleSheet("background-color: rgba(0,0,0,1%)");
window->setCentralWidget(label);
window->show();
return a.exec();
}
这是预期的行为,如果没有,是否有办法解决这个问题。
答案 0 :(得分:0)
我最多只能解决这个问题:
#include <QtWinExtras>
...
QtWin::extendFrameIntoClientArea(window, -1, -1, -1, -1);
这会打破click-through
行为,但仅在启用Aero Theme(即桌面合成)时才适用于Windows 7,仅适用于Qt 5.2以上(因为5.2中引入了winextras)。
这对我有用。希望这一般有用。仍然希望对问题采取更一般的解决方案,或者确认这是预期的行为。