Python的tkinter模块另类玩法,实现真正的嵌套窗口
tkinter创建真正的嵌套子窗口
- 引言
- 获取窗口句柄方法一方法二
- 创造嵌入窗口
- 嵌套在组件中
- 结语
引言
在我之前的这篇纯tkinter创建嵌套子窗口的文章中,只提及了3种方法,原因就是,那三种方法都是建立在相对高层的代码上的。而这次需要使用系统(Windows)的底层api,来创建真正意义上的嵌套子窗口。
需要注意的是,这次的子窗口是完全真正的窗口,也就是tkinter的子窗口功能全开。不过,这篇文章并不是由纯tkinter实现。
我们没必要去寻找 Windows-api,已经有人帮我们弄好了,这次需要用到 win32gui (下载 pywin32 就可以了) 。除了单独下载 pywin32,在测试阶段还需要使用 pygetwindow,用 pip install PyGetWindow 就可以了。
获取窗口句柄
方法一
win32gui已经给出了方法,如下:
import win32gui
import pygetwindow as gw
hwnd = win32gui.FindWindow(None, u"窗口名称")
然而在测试就阶段,有些窗口的标题很难准确确定,那么就要使用 pygetwindow 了。
titles = gw.getAllTitles()
print(titles)
方法二
同样的,pygetwindow 也提供了通过标题一个获取窗口句柄的方式。
import re