簡體   English   中英

運行pythonw.exe時影響的Python腳本tkinter分辨率和屏幕截圖大小

[英]Python script tkinter resolution and screenshot size effected when running pythonw.exe

我目前有一個python腳本,可啟動tkinter GUI實例,並帶有一個按鈕,單擊該按鈕即可截取屏幕截圖。

當我在python.exe下運行此腳本時,tkinter分辨率很好,並且屏幕截圖捕獲了整個屏幕。 但是,使用pythonw.exe時,tkinter窗口的分辨率會發生變化(例如,按鈕變大),並且屏幕截圖僅捕獲屏幕的一部分-通常位於左上角。

我需要使用pythonw.exe來防止出現控制台窗口。

有誰知道為什么會影響tkinter窗口分辨率和屏幕截圖? 大概對分辨率的影響就是為什么截圖捕獲量也會減少。

我對Python相當陌生,因此,對此的任何幫助將不勝感激,以下是tkinter窗口和屏幕截圖功能的代碼片段。 要重申此功能,請在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)

我現在已經解決了這個問題。 似乎與Windows中pythonw.exe的兼容性設置有關。 更改以下內容可以修復圖像捕獲,也可以修復tkinter窗口分辨率:

  • 轉到您的python目錄(對我來說c:/python27/
  • 右鍵單擊python.exe並選擇屬性
  • 選擇兼容性選項卡
  • 按下“更改所有用戶的設置”按鈕
  • 選中“在高DPI設置上禁用顯示比例縮放”

歸功於這篇文章:

Python Imaging Library無法捕獲整個屏幕

希望這可以幫助遇到相同問題的人。 它確實引起了關於如何自動完成此操作的問題,因為對於python應用程序的用戶來說,他們不得不更改這些設置並不友好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM