在Tkinter中导入pywinauto时窗口大小发生变化

问题描述 投票:0回答:1

这是我的测试代码片段

from tkinter import *

master=Tk()
master.geometry('640x340')
Button(master,text='check').pack()

def new():
    print('done')
    from pywinauto import Desktop, Application

master.after(1000,new)
master.mainloop()

在整整一秒钟内,创建的 tkinter 窗口的大小就会减小,按钮也会发生同样的情况。这只是我在尝试构建的应用程序中跟踪此问题后编写的测试代码。有人可以告诉我为什么窗口大小会改变,以及我可以采取什么措施来防止这种情况发生?

我已经检查了所有我能查到的,官方文档只提到了一次 Tkinter,并且指的是 pywinauto 的后端,我认为它不相关。 此处,第 5 页。

python tkinter import resolution pywinauto
1个回答
0
投票

此问题发生在 C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\pywinauto win32functions.py SetProcessDpiAwareness。

所以解决这个问题的方法是这样的:

import ctypes
ctypes.windll.shcore.SetProcessDpiAwareness(0)
from tkinter import *

master=Tk()
master.geometry('640x340')
Button(master,text='check').pack()

def new():
    print('done')
    from pywinauto import Desktop, Application

master.after(1000,new)
master.mainloop()
© www.soinside.com 2019 - 2024. All rights reserved.