整理 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')
该行代码导致此窗口弹出并更新。
只需磨掉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)
或者,如果您不想更改代码,请执行以下操作:
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
调用,以将打印的信息路由到窗口。