Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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
C++ 框架和透明窗口不工作!Qt小部件_C++_Windows_Qt - Fatal编程技术网

C++ 框架和透明窗口不工作!Qt小部件

C++ 框架和透明窗口不工作!Qt小部件,c++,windows,qt,C++,Windows,Qt,我正在使用Qt小部件 我需要一个对话框,当我点击主窗口上的一个按钮时,这个对话框应该是透明的,这意味着如果我打开它,我仍然可以看到背景,好像什么都没有 我在对话框的构造函数中尝试了以下操作: this->setWindowFlags(Qt::Widget | Qt::FramelessWindowHint); this->setAttribute(Qt::WA_TranslucentBackground,true); this->setWindowState(Qt::Windo

我正在使用Qt小部件

我需要一个对话框,当我点击主窗口上的一个按钮时,这个对话框应该是透明的,这意味着如果我打开它,我仍然可以看到背景,好像什么都没有

我在对话框的构造函数中尝试了以下操作:

this->setWindowFlags(Qt::Widget | Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_TranslucentBackground,true);
this->setWindowState(Qt::WindowFullScreen);
  • 注意:我正在使用鼠标事件,在那里我可以得到鼠标的坐标,我试过了,它工作了,我现在唯一想要的就是我说的透明部分。 程序编译得很好,图标显示在打开的程序所在的栏中,但我无法使用我可以看到的事件,如果我删除了上面的代码
为了更清楚地说明这一点,以下是鼠标事件:

void FramelessWindow::mousePressEvent(QMouseEvent *event){
    if(event->button()==Qt::LeftButton){
           origin= event->pos();
           rubberBand->setGeometry(QRect(origin,QSize()));
           rubberBand->show();
    }
}

void FramelessWindow::mouseMoveEvent(QMouseEvent *event){
    rubberBand->setGeometry(QRect(origin,event->pos()).normalized());
}


void FramelessWindow::mouseReleaseEvent(QMouseEvent *event){   
    rubberBand->hide();
}
*编辑:

在花了将近12个小时试图解决这个问题后,我就是不能:(我尝试了所有的方法,但都不起作用,希望有另一种方法可以做同样的事情?我在windows 8上.)

*编辑2:

是的,我用的是Windows8

我所说的“使用一切”的意思是,我在谷歌做了一切,尝试了这个家伙的方法:

这家伙:

但还是没用


好的,还有其他方法可以抓取鼠标事件吗?例如,用户可以按住并拖动鼠标事件,然后释放鼠标事件,我可以获取坐标,这样我就可以拍摄照片和类似的东西,用户需要看到背景,这就是为什么我说它需要透明。

如果您使用的是Qt 5.2,您可能想看看这个Qt Windows附加服务:


对不起,我没有理解,怎么理解?@Bццћ:他正在使用Windows 8。@user3622289:
我尝试了所有方法,但都没有成功
->也许你可以详细说明所有方法的含义?