使用 Qt 和 python,我想创建一个附加到 Chrome 的窗口,当我调整 Chrome 窗口的大小时它会移动。现在,我可以在启动时附加到 chrome 窗口,但我不知道如何获得 chrome 窗口的移动/调整大小事件以适应主窗口的大小,这是我的 QMainWindow。
这是我的代码:
import win32gui
import sys,os,re,getopt
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import win32com.client
def callback(hwnd, main):
rect = win32gui.GetWindowRect(hwnd)
x = rect[0]
y = rect[1]
w = rect[2] - x
h = rect[3] - y
if w>20 and h>20:
windowName= win32gui.GetWindowText(hwnd)
if "- Google" in windowName:
print "Window %s:" % win32gui.GetWindowText(hwnd)
print "classname %s:" % win32gui.GetClassName(hwnd)
print "\tLocation: (%d, %d)" % (x, y)
print "\t Size: (%d, %d)" % (w, h)
main.move(x,y+40)
def main():
app = QApplication(sys.argv)
main = QMainWindow(None,Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
main.resize(200,200)
main.move(400,400)
qtextedit= QTextEdit(main)
qtextedit.resize(200,200)
qtextedit.setPlainText('Hello world')
qtextedit.setReadOnly(True)
main.show()
win32gui.EnumWindows(callback, main)
sys.exit(app.exec_())
if __name__ == '__main__':
main()
代码如何工作?
main 创建一个新的 QMainWindow,里面有一个 qtextedit。比调用 win32gui.EnumWindows ,它会遍历所有打开的窗口。我找到了我想用windowName附加到的应用程序,其中包含"-Google"。我将主窗口移动到比主窗口低 40px 的位置。
问题是当我移动 chrome 窗口时,我的窗口不会随之移动。
是否可以捕获其他窗口的移动事件?