【发布时间】:2017-05-29 17:45:23
【问题描述】:
我目前有一个 python 脚本,它启动一个 tkinter GUI 实例,点击一个按钮会截取屏幕截图。
当我在 python.exe 下运行此脚本时,tkinter 分辨率很好,并且屏幕截图捕获了整个屏幕。但是,当使用 pythonw.exe 时,tkinter 窗口分辨率会发生变化(例如按钮变大),并且屏幕截图仅捕获屏幕的一部分 - 通常是左上角。
我需要使用 pythonw.exe 来防止控制台窗口出现。
有谁知道为什么 tkinter 窗口分辨率和屏幕截图会受到影响?据推测,对分辨率的影响是屏幕截图捕获量也减少的原因。
我对 Python 相当陌生,因此非常感谢您提供任何帮助,以下是 tkinter 窗口和屏幕截图功能的代码的 sn-p。重申一下这个功能在 python.exe 下运行得很好。
使用 ImageGrab 的截图功能:
callback1():
ImageGrab.grab_to_file('test.png')
tkinter 窗口:
master = Tk()
master.wm_attributes("-topmost", 1)
master.title("Report")
master.configure(background='white')
master.iconbitmap(default='icon.ico')
master.resizable(0, 0)
frame1 = Frame(master, bg='white')
frame1.pack(side=BOTTOM, fill=X)
button1 = Button(frame1, compound=BOTTOM, width=307, height=82,
image=photo1, bg='white', command=callback1)
button1.pack(side=TOP, padx=2, pady=8)
【问题讨论】:
标签: python python-2.7 tkinter screenshot pythonw