天天看點

python 筆記 PySimpleGUI 圖形界面6- 進階API調用-進度表控件、調試輸出進階API調用

整理 PySimpleGUI 官方網站

原文google翻譯過來的

https://pysimplegui.readthedocs.io/en/latest/

進階API調用

進度表控件

我們的代碼中都有循環。“看着文本視窗中的櫃台滾動過去,這不是快樂的等待嗎?一行代碼如何獲得進度表,其中包含有關您的代碼的統計資訊呢?

one_line_progress_meter(title,
    current_value,
    max_value,
    key,
    args=*<1 or N object>,
    orientation="v",
    bar_color=(None, None),
    button_color=None,
    size=(20, 20),
    border_width=None,
    grab_anywhere=False,
    no_titlebar=False)
           

參數說明:

參數類型 參數名 說明
str 字元串 title 标題 要顯示的文本
int 整型 current_value 目前值 目前值
int 整型 max_value max_value QuickMeter的最大值
Union[str, int, tuple] Union [str,int,tuple] key 與window.FindElement和傳回值一起使用,以唯一地辨別此元素
Any 任何 *args *參數 要輸出的東西
str 字元串 orientation 取向 ‘水準’或’垂直’('h’或’v’工作)(預設值=‘vertical’/‘v’)
Tuple(str, str) 元組(str,str) bar_color bar_color 條形線的顔色
Tuple[str, str] 元組[str,str] button_color button_color 按鈕顔色(前景,背景)
Tuple[int, int] 元組[int,int] size 尺寸 (w,h)w =字元寬,h =行高(預設值= DEFAULT_PROGRESS_BAR_SIZE)
int 整型 border_width border_width 元素周圍邊框的寬度
bool 布爾 grab_anywhere 抓住任何地方 如果為True:可以抓住任何地方移動視窗(預設= False)
bool 布爾 no_titlebar no_titlebar 如果為True:視窗上不會顯示标題欄
(bool) (布爾) RETURN 傳回 如果成功更新,則為True。如果使用者使用X或“取消”按鈕關閉儀表,則為False

這是運作中的單行進度表!

for i in range(1,10000):
    sg.one_line_progress_meter('My Meter', i+1, 10000, 'key','Optional message')
           

該行代碼導緻此視窗彈出并更新。

python 筆記 PySimpleGUI 圖形界面6- 進階API調用-進度表控件、調試輸出進階API調用

隻需磨掉1行代碼,即可獲得一台儀表和許多有趣的統計資料,可在您的機器磨削時觀看。借助一些技巧,您可以使用“進度表”視窗提供一種打破循環的方式。取消按鈕會

False

從中傳回值

OneLineProgressMeter

。通常傳回

True

確定将一個添加到循環計數器,以使您的計數器從1變為最大值。如果不加一,計數器将永遠不會達到最大值。相反,它将從0到max-1。

調試輸出(easy_print =列印= eprint)

API的“簡易”系列中的另一個調用是

EasyPrint

。與其他常用的PySimpleGUI調用一樣,同一調用還有其他名稱。您可以使用

Print

eprint

EasyPrint

。它們都做同樣的事情,輸出到調試視窗。如果調試視窗未打開,則第一個調用将打開它。除了在代碼中添加“ sg.Print”調用外,無需執行任何操作。隻需粘貼以下語句,您甚至可以将對“列印”的調用替換為對EasyPrint的調用

print = sg.Print
           

在代碼的頂部。

Print是易于使用的更好的工具之一。它隻是print用大寫字母P。

sg.Print('this will go to the debug window')

import PySimpleGUI as sg

for i in range(100):
    sg.Print(i)
           
python 筆記 PySimpleGUI 圖形界面6- 進階API調用-進度表控件、調試輸出進階API調用

或者,如果您不想更改代碼,請執行以下操作:

import PySimpleGUI as sg

print=sg.Print
for i in range(100):
    print(i)
           

就像标準的列印調用一樣,

easy_print

支援

sep

end

關鍵字參數。可以用來調用的其他名稱

easy_print

包括

Print

,,

eprint

如果要關閉視窗,請調用函數

easy_print_close

您可以使用

set_options

帶有

debug_win_size

參數的調用來更改調試視窗的大小。

有一個選項告訴PySimpleGUI将所有的

stdout

stderr

輸出重新路由到此視窗。為此,請調用

easy_print

并将參數

do_not_reroute_stdout

設定為

False

。在将此參數設定為

True

的情況下調用一次之後,以後所有對法線的調用

print

都将進入調試視窗。

如果關閉調試視窗,則下次列印時将重新打開。如果您希望使用代碼關閉視窗,則可以調用

easy_print_close()

PrintClose()

列印到多行元素

輸出通常要列印的資訊的另一種方法是使用函數

Multiline.print

。您會在本文檔中進一步讨論它。基本思想是,您可以輕松地修改正常

print

調用,以将列印的資訊路由到視窗。