Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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
Python PyQt-如何在对话框后面淡入桌面背景(类似于Windows UAC)?_Python_Pyqt - Fatal编程技术网

Python PyQt-如何在对话框后面淡入桌面背景(类似于Windows UAC)?

Python PyQt-如何在对话框后面淡入桌面背景(类似于Windows UAC)?,python,pyqt,Python,Pyqt,我想知道PYTHON中的pyqt是否有这么多功能,但是对话框是否可能位于屏幕的中心(我知道这是可能的),并且对话框外侧的sourounding区域的不透明度大约为50%,因此基本上它仍然可以看到,但您无法完全看到它。这可能吗?确保您理解我在对话框外部而不是内部谈论的内容。我想为我的简单锁屏应用程序这不是很安全,但我会在以后的工作。我试过了 self.setWindowOpacity(.8) 但这只适用于我想影响外面的窗户 我知道这听起来不太容易理解,但是如果您需要更多的解释,请在评论中告诉我。

我想知道PYTHON中的pyqt是否有这么多功能,但是对话框是否可能位于屏幕的中心(我知道这是可能的),并且对话框外侧的sourounding区域的不透明度大约为50%,因此基本上它仍然可以看到,但您无法完全看到它。这可能吗?确保您理解我在对话框外部而不是内部谈论的内容。我想为我的简单锁屏应用程序这不是很安全,但我会在以后的工作。我试过了

self.setWindowOpacity(.8)
但这只适用于我想影响外面的窗户


我知道这听起来不太容易理解,但是如果您需要更多的解释,请在评论中告诉我。

您希望背景(桌面)的透明度降低吗?背景后面没有任何东西,因此更改不透明度没有任何意义。我想你想要类似于WindowsUAC对话框的工作方式。与安装软件时一样,会显示一个确认对话框,屏幕的其余部分会变黑

这可以通过创建一个单色全屏无边框窗口来模拟,并降低不透明度,然后在上面打开对话框

对于无框架/无边界窗口,我找到了对QtCore.Qt.FramelessWindowHint和一个名为QWindow.setMask()的方法的引用。任何一个都可以

希望这是有帮助的

编辑:添加代码示例(基于链接中的示例):


这只适用于单个屏幕。您必须枚举屏幕,并为每个单独的屏幕创建一个窗口,以覆盖多屏幕设置。我将把它作为练习留给您。

您希望背景(桌面)的不透明度更小吗?背景后面没有任何东西,因此更改不透明度没有任何意义。我想你想要类似于WindowsUAC对话框的工作方式。与安装软件时一样,会显示一个确认对话框,屏幕的其余部分会变黑

这可以通过创建一个单色全屏无边框窗口来模拟,并降低不透明度,然后在上面打开对话框

对于无框架/无边界窗口,我找到了对QtCore.Qt.FramelessWindowHint和一个名为QWindow.setMask()的方法的引用。任何一个都可以

希望这是有帮助的

编辑:添加代码示例(基于链接中的示例):


这只适用于单个屏幕。您必须枚举屏幕,并为每个单独的屏幕创建一个窗口,以覆盖多屏幕设置。我将把它作为练习留给你。

我试着添加一个窗口,然后在上面添加一个对话框,但无法实现,我有点被你所说的“创建一个全屏无边框的单色对话框,降低透明度,并在上面绘制对话框”弄糊涂了。你有时间键入一些示例代码吗?感谢添加的代码示例。我使用的PySide或多或少与PyQt等价,您所要做的(我认为)就是更改导入,或者切换到PySide:)。请您更改标题以更好地反映问题,好吗?“PyQt-如何在对话框(类似于Windows UAC)后淡出桌面背景?”例如,我意识到我弄乱了一些单词,并稍微更改了措辞以使其清晰。你的代码帮了大忙现在我有了Windows UAC风格的witch,这正是我所要找的我尝试添加了一个窗口,然后在上面添加了一个对话框,但是我不能让它工作,我有点被你所说的“创建一个全屏无边框的单色对话框,降低不透明度,并在上面画你的对话框”弄糊涂了。你有时间键入一些示例代码吗?感谢添加的代码示例。我使用的PySide或多或少与PyQt等价,您所要做的(我认为)就是更改导入,或者切换到PySide:)。请您更改标题以更好地反映问题,好吗?“PyQt-如何在对话框(类似于Windows UAC)后淡入桌面背景?”例如,我意识到我弄乱了一些单词,并稍微更改了措辞以使其清晰。你的代码帮了大忙,现在我有了Windows UAC风格的witch,这正是我所寻找的
import sys
from PySide import QtCore, QtGui

class MyWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(MyWindow, self).__init__(parent)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.b = QtGui.QPushButton("exit", self, clicked=self.close)
        self.setWindowOpacity(.8)
        self.setStyleSheet("QMainWindow { background: 'black'}");

        self.dialog = QtGui.QDialog()
        self.dialog.setModal(True)
        self.dialog.show()

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    myapp = MyWindow()
    myapp.setGeometry(app.desktop().screenGeometry())
    myapp.show()
    sys.exit(app.exec_())