我想检查是否显示了 Windows 7 的桌面(例如单击 control+D 或 showDesktop-Button 后)。
它适用于我设置 QtCore.Qt.FramelessWindowHint 以使装饰消失的应用程序。显示桌面并最小化所有内容后,我想重新显示应用程序(这应该是可选的,用户可以设置或取消设置此行为)。
我在 IDLE 中对此进行了测试。如果我显示桌面,我想检测更改,但仍然打印“1”。只有当我关闭(销毁)窗口时,它才会变为“0”,但这不是我要寻找的......
from PyQt4 import QtGui, QtCore
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
import win32gui
import time
class Main(QWidget):
def __init__(self, app):
QtGui.QWidget.__init__(self)
self.app=app
self.window=QWidget()
self.window.resize(200,100)
self.window.setWindowTitle("Dummy")
#self.window.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.window.show()
self.check_Minimized_Thread=Worker(self)
self.check_Minimized_Thread.start()
self.app.exec_()
class Worker(QThread):
def __init__(self, parent = None):
QThread.__init__(self, parent)
self.exiting = False
def __del__(self):
self.exiting = True
self.wait()
def run(self):
while True:
time.sleep(0.5)
hwnd=win32gui.FindWindow(None,"Dummy")
A=win32gui.IsWindowVisible(hwnd)
print(A)
self.exit()
if __name__ == '__main__':
app=QApplication(sys.argv)
Main(app)