Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt窗口透明度_Qt_Transparency_Qt5_Click Through - Fatal编程技术网

Qt窗口透明度

Qt窗口透明度,qt,transparency,qt5,click-through,Qt,Transparency,Qt5,Click Through,我有一个顶级的半透明无框QMainWindow。在窗口的透明部分,我有一个不良的点击效果(到底层窗口) int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow *window = new MainWindow; window->setWindowFlags(window->windowFlags() | Qt::FramelessWindowHint); win

我有一个顶级的半透明无框
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();
}

这是预期的行为吗?如果不是,有没有办法解决这个问题。

我有一个最好的部分解决方案:

#include <QtWinExtras>
...
QtWin::extendFrameIntoClientArea(window, -1, -1, -1, -1);
#包括
...
扩展框架ClientArea(窗口,-1,-1,-1);
这打破了
点击
行为,但仅在启用Aero主题(即桌面合成)的Windows 7上有效,并且仅适用于Qt 5.2以后的版本(如winextras在5.2中引入)

这对我有用。希望这在总体上有所帮助。我仍然想要一个更普遍的问题解决方案,或者确认这是预期的行为