easygraphics.dialog包¶
一个简单易用的对话框函数库。
你可以用它来创建或显示对话框。
基于EasyGUI_Qt(https://github.com/aroberge/easygui_qt/)。由于原EasyGUI-Qt库无法与EasyGraphics一起工作,因此使用该库代替。
一个简单的例子:
>>> from easygraphics.dialog import *
>>> name=get_string("name")
>>> show_message("Your name is "+name)
函数列表¶
get_choice (message, title, choices) |
显示一个对话框,让用户从下拉列表中选择一项 |
get_color ([color]) |
显示一个色彩选择对话框,返回用户选择的颜色 |
get_color_hex ([color]) |
显示一个色彩选择对话框,以16进制整数字符串形式返回用户选择的颜色。 |
get_color_rgb ([color]) |
显示一个色彩选择对话框,以(r,g,b)三元组的形式返回用户选择的颜色。 |
get_continue_or_cancel (question, title, …) |
选择继续或者取消 |
get_date (title) |
选择日期 |
get_directory_name (title) |
选择一个目录 |
get_file_names (title, filter) |
选择文件 |
get_float (message, title, default_value, …) |
显示一个对话框,让用户在指定范围和精度下选择一个浮点数。 |
get_int (message, title, default_value, min_, …) |
显示一个对话框,让用户在指定范围内选择一个整数。 |
get_list_of_choices (title, choices) |
显示一个列表让用户选择(可复选) |
get_many_strings (title, labels, masks) |
同时输入多个字符串 |
get_new_password (title, labels) |
修改密码对话框 |
get_password (message, title) |
输入密码对话框。 |
get_save_file_name (title, filter) |
打开文件以保存对话框。 |
get_string (message, title, default_response) |
简单的文本输入对话框。 |
get_username_password (title, labels) |
获取用户名和密码。 |
get_yes_or_no (question, title) |
让用户选择yes或no。 |
set_dialog_font_size (size) |
设置对话框的字体大小。 |
show_html (title, text, width, height) |
在窗口中显示html代码。 |
show_image_dialog (image, title) |
在窗口中显示图片。 |
show_lists_table (*args, column_names, title, …) |
以表格形式显示多个列表。 |
show_message (message, title) |
显示一个简单消息框。 |
show_objects (datas, fields, field_names, …) |
以表格形式显示一组对象。 |
show_text (title, text, width, height) |
在窗口中显示一大段文字。 |
show_table (datas, fields, field_names, …) |
以表格形式显示一组对象。 |
show_code (title, code, width, height) |
在窗口中显示代码。 |
show_file (file_name, title, file_type, …) |
在窗口中显示文件内容。 |
函数¶
-
easygraphics.dialog.
set_dialog_font_size
(size: int)¶ 设置对话框的字体大小。
参数: size – font size >>> from easygraphics.dialog import * >>> set_dialog_font_size(18) >>> show_message("font setted!")
-
easygraphics.dialog.
show_message
(message: str = 'Message', title: str = 'Title')¶ 显示一个简单消息框。
参数: - message – 消息字符串
- title – 对话框标题
>>> from easygraphics.dialog import * >>> show_message()
-
easygraphics.dialog.
show_text
(title: str = 'Title', text: str = '', width: int = 720, height: int = 450)¶ 在窗口中显示一大段文字。
参数: - title – 对话框标题
- text – 要显示在对话框中的内容
- width – 对话框窗口宽度
- height – 对话框窗口高度
>>> from easygraphics.dialog import * >>> show_text("Hello","Hello world!")
-
easygraphics.dialog.
show_code
(title: str = 'Title', code: str = '', width: int = 720, height: int = 450)¶ 在窗口中显示代码。
参数: - title – 对话框标题
- code – 要显示在对话框中的内容
- width – 对话框窗口宽度
- height – 对话框窗口高度
-
easygraphics.dialog.
show_file
(file_name: str = None, title: str = 'Title', file_type: str = 'text', width: int = 720, height: int = 450)¶ 在对话框中显示文件内容。虽然在窗口中可以编辑文件的内容,但是所作修改并不会保存。
参数: - title – 对话框标题
- file_name – 文件路径
- file_type – 可以的值:
text
,code
,html
,python
。 - width – 对话框窗口宽度
- height – 对话框窗口高度
缺省的情况下,file_type参数被设为``text``;如果设为``code``, 内容使用monospace字体显示;如果设为``python``, 内容使用python语法高亮显示;如果设为``html``,内容使用html语法高亮显示。
注意:请大家推荐一个更好的Python语法高亮器。
>>> from easygraphics.dialog import * >>> show_file()
-
easygraphics.dialog.
show_objects
(datas: Sequence[T_co], fields: Sequence[str] = None, field_names: Sequence[str] = None, title: str = 'Title', width: int = 720, height: int = 450, enable_sorting=False)¶ 以表格形式显示一组对象。
>>> from easygraphics.dialog import * >>> class Person: >>> def __init__(self,name,age,sex): >>> self.name=name >>> self.age = age >>> self.sex = sex >>> objs = [Person("Jack", 22, "M"), Person("Micheal", 40, "F"), Person("David", 24, "M")] >>> show_objects(title="peoples",datas=objs,fields=["name","age","sex"],field_names=["NAME","AGE","SEX"])
参数: - datas – 要显示的对象列表
- fields – 要显示的对象属性列表
- field_names – 显示在表头的对象属性名称
- title – 对话框窗口标题
- width – 对话框窗口宽度
- height – 对话框窗口高度
- enable_sorting – if data can be sorted by clicking the column name
-
easygraphics.dialog.
get_abort
(message: str = 'Major problem - or at least we think there is one...', title: str = 'Major problem encountered!')¶ 显示问题的说明。如果用户点击”abort”,程序会执行sys.exit()然后结束执行。如果用户点击”ignore”,程序继续执行。
参数: - title – 对话框标题
- message – 要显示的信息
>>> from easygraphics.dialog import * >>> get_abort()
-
easygraphics.dialog.
get_choice
(message: str = 'Select one item', title: str = 'Title', choices: List[str] = None) → Optional[str]¶ 显示一个对话框,让用户从下拉列表中选择一项
参数: - message – 要显示给用户的输入提示信息
- title – 对话框窗口标题
- choices – 包含待选择项名称的列表。
返回: 输入的字符串,或者None如果用户点击了”cancel”,或者直接关闭了对话框。
>>> from easygraphics.dialog import * >>> choices = ["CPython", "Pypy", "Jython", "IronPython"] >>> reply = get_choice("What is the best Python implementation", choices=choices)
-
easygraphics.dialog.
get_color_hex
(color='white') → Optional[str]¶ 显示颜色选择对话框,以16进制整数字符串的形式(如’#ffffff’)返回选择的颜色;如果用户取消或者直接关闭对话框,则返回None。
>>> from easygraphics.dialog import * >>> color = get_color_hex()
-
easygraphics.dialog.
get_color_rgb
(color='white') -> (<class 'int'>, <class 'int'>, <class 'int'>)¶ 显示一个色彩选择对话框,以(r,g,b)三元组的形式返回用户选择的颜色。如果用户取消或者直接关闭对话框,则返回None。
>>> from easygraphics.dialog import * >>> color = get_color_rgb()
-
easygraphics.dialog.
get_color
(color='white') → PyQt5.QtGui.QColor¶ 显示一个色彩选择对话框,返回用户选择的颜色
>>> from easygraphics.dialog import * >>> color = get_color()
返回: 选择的颜色
-
easygraphics.dialog.
get_continue_or_cancel
(question: str = 'Processed will be cancelled!', title: str = 'Title', continue_button_text: str = 'Continue', cancel_button_text: str = 'Cancel') → bool¶ 显示警告信息,让用户选择继续执行(continue)还是中止程序(cancel)。
参数: - question – 要显示的问题
- title – 窗口标题
- continue_button_text – 在按钮上显示的文字
- cancel_button_text – 在按钮上显示的文字
返回: 按”Continue”返回True, “Cancel”返回False
>>> from easygraphics.dialog import * >>> choice = get_continue_or_cancel()
-
easygraphics.dialog.
get_date
(title: str = 'Select Date') → datetime.date¶ 选择日期
参数: title – 对话框标题 返回: 以``datetime.date``对象形式的用户选择的日期 >>> from easygraphics.dialog import * >>> date = get_date()
-
easygraphics.dialog.
get_directory_name
(title: str = 'Get directory') → str¶ 选择一个目录
参数: title – 对话框窗口标题 返回: 选择的文件夹路径。如果用户取消选择,返回空字符串。 >>> from easygraphics.dialog import * >>> get_directory_name()
该对话框缺省显示当前工作目录下的内容
-
easygraphics.dialog.
get_file_names
(title: str = 'Get existing file names', filter: str = 'All Files (*.*)') → str¶ 选择文件
参数: - title – 对话框窗口标题
- filter – file filter
返回: 选择的文件和文件夹列表
>>> from easygraphics.dialog import * >>> get_file_names()
该对话框缺省显示当前工作目录下的内容
-
easygraphics.dialog.
get_float
(message: str = 'Choose a number', title: str = 'Title', default_value: float = 0.0, min_: float = -10000, max_: float = 10000, decimals: int = 3) → Optional[float]¶ 显示一个对话框,让用户在指定范围和精度下选择一个浮点数。
参数: - message – 要显示给用户的输入提示信息
- title – 对话框窗口标题
- default_value – 显示在输入框中的缺省数值。如果超出允许选择范围,则自动设置到范围边界上。
- min – 允许的最小值
- max – 允许的最大值
- decimals – 最大精度位数
返回: 用户输入的浮点数;如果用户取消或直接关闭了对话框则返回None。
>>> from easygraphics.dialog import * >>> number = get_float()
注意: 在某些语言(如法语)的操作系统中,在输入数字时可能需要使用其他符号作为小数点。
-
easygraphics.dialog.
get_int
(message: str = 'Choose a number', title: str = 'Title', default_value: int = 1, min_: int = 0, max_: int = 100, step: int = 1) → Optional[int]¶ 显示一个对话框,让用户在指定范围内选择一个整数。
注意:**get_int()**是**get_integer()**的别名。
参数: - message – 要显示给用户的输入提示信息
- title – 对话框窗口标题
- default_value – 显示在输入框中的缺省数字。如果超出允许范围,会自动设置到范围边界上。
- min – 允许的最小整数
- max – 允许的最大整数
- step – 当用户每次点击右侧的箭头时,输入数字的变化量
返回: 输入的整数,如果用户取消或直接关闭了对话框则返回None。
>>> from easygraphics.dialog import * >>> number = get_int()
如果``default_value``大于``max_``,则会被自动设成``max_``;如果小于``min_``,则会被自动设为``min_``。
>>> number = get_integer("Enter a number", default_value=125)
-
easygraphics.dialog.
get_integer
(message: str = 'Choose a number', title: str = 'Title', default_value: int = 1, min_: int = 0, max_: int = 100, step: int = 1) → Optional[int]¶ 显示一个对话框,让用户在指定范围内选择一个整数。
注意:**get_int()**是**get_integer()**的别名。
参数: - message – 要显示给用户的输入提示信息
- title – 对话框窗口标题
- default_value – 显示在输入框中的缺省数字。如果超出允许范围,会自动设置到范围边界上。
- min – 允许的最小整数
- max – 允许的最大整数
- step – 当用户每次点击右侧的箭头时,输入数字的变化量
返回: 输入的整数,如果用户取消或直接关闭了对话框则返回None。
>>> from easygraphics.dialog import * >>> number = get_int()
如果``default_value``大于``max_``,则会被自动设成``max_``;如果小于``min_``,则会被自动设为``min_``。
>>> number = get_integer("Enter a number", default_value=125)
-
easygraphics.dialog.
get_list_of_choices
(title: str = 'Title', choices: List[str] = None) → easygraphics.dialog._indexed_order_list.IndexedOrderedDict¶ 显示一个列表让用户选择(可复选)
参数: - title – 对话框窗口标题
- choices – 待选择项列表
返回: 选中项列表
>>> from easygraphics.dialog import * >>> choices = get_list_of_choices()
-
easygraphics.dialog.
get_many_strings
(title: str = 'Title', labels: List[str] = None, masks: List[bool] = None) → easygraphics.dialog._indexed_order_list.IndexedOrderedDict¶ 同时输入多个字符串
参数: - title – 对话框窗口标题
- labels – 各输入框的标签列表
- masks – 各输入框输入内容是否隐藏显示的列表
返回: 一个有序字典,可以标签或者序号作为关键字,取出用户输入的值
参数``masks``是一个与``choices``参数长度相同的列表,每个元素为True或者False,指明每个输入项是否隐藏显示的内容。通常用于有输入项是密码(因此需要隐藏输入内容)的情况。
>>> from easygraphics.dialog import * >>> labels = ["User name", 'Password'] >>> masks = [False, True] >>> reply = get_many_strings(labels=labels, masks=masks) >>> reply OrderedDict([('User name', 'aroberge'), ('Password', 'not a good password')])
-
easygraphics.dialog.
get_new_password
(title: str = 'Title', labels: List[str] = None) → easygraphics.dialog._indexed_order_list.IndexedOrderedDict¶ 修改密码对话框
参数: - title – 对话框窗口标题
- labels – 一个列表,其中包含”Old password(旧密码)”、”New password(新密码)”和”Confirm new password(确认新密码)”的提示标签。三个标签必须互不相同,因为返回的字典要以它们为关键字。
返回: 一个有序字典。可以以提示标签名和序号作为关键字,从中取出用户的输入的值。
注意:该函数是``get_many_strings``的特例,密码会被自动隐藏显示。
>>> from easygraphics.dialog import * >>> reply = get_new_password()
-
easygraphics.dialog.
get_open_file_name
(title: str = 'Get file name for open', filter: str = 'All Files (*.*)') → str¶ 选择要打开的文件
参数: - title – 对话框窗口标题
- filter – file filter
返回: 文件路径
-
easygraphics.dialog.
get_password
(message: str = 'Enter your password', title: str = 'Title') → Optional[str]¶ 简单的密码输入框。用来让用户输入密码。
参数: - message – 要显示给用户的输入提示信息
- title – 对话框窗口标题
返回: 输入的字符串,或者None如果用户点击了”cancel”,或者直接关闭了对话框。
>>> from easygraphics.dialog import * >>> password = get_password()
-
easygraphics.dialog.
get_save_file_name
(title: str = 'File name to save', filter: str = 'All Files (*.*)') → str¶ 打开文件以保存对话框。
参数: - title – 对话框窗口标题
- title – 对话框窗口标题
返回: 用户选中的文件路径
如果文件已经存在,用户会得到警告,也可以取消。但是,该对话框并不会真正保存文件,实际的保存工作需要用户代码完成。
>>> from easygraphics.dialog import * >>> get_save_file_name()
该对话框缺省显示当前工作目录下的内容
-
easygraphics.dialog.
get_string
(message: str = 'Enter your response', title: str = 'Title', default_response: str = '') → Optional[str]¶ 简单的文字输入框。
参数: - message – 要显示给用户的输入提示信息
- title – 对话框窗口标题
- default_response – 显示在输入框中的缺省内容
返回: 输入的字符串,或者None如果用户点击了”cancel”,或者直接关闭了对话框。
>>> from easygraphics.dialog import * >>> reply = get_string()
>>> reply = get_string("new message", default_response="ready")
-
easygraphics.dialog.
get_username_password
(title: str = 'Title', labels: List[str] = None) → easygraphics.dialog._indexed_order_list.IndexedOrderedDict¶ 获取用户名和密码。
参数: - title – 对话框窗口标题
- labels – 一个包含”user name”和”password”的提示标签的列表。如果未提供该列表,则使用缺省标签。
返回: 一个有序词典,可以用标签名和序号作为关键字,取出用户输入的值。
注意:该函数是``get_many_strings``的特例,密码会被自动隐藏显示。
>>> from easygraphics.dialog import * >>> reply = get_username_password() >>> reply OrderedDict([('User name', 'aroberge'), ('Password', 'not a good password')])
-
easygraphics.dialog.
get_yes_or_no
(question: str = 'Answer this question', title: str = 'Title') → Optional[bool]¶ 让用户选择yes或no。
参数: - question – 要显示的问题
- title – 窗口标题
返回: 选yes返回True,选No返回False,选Cancel返回None。
>>> from easygraphics.dialog import * >>> choice = get_yes_or_no()
-
easygraphics.dialog.
show_image_dialog
(image: PyQt5.QtGui.QImage, title: str = 'Title')¶ 在窗口中显示图片。
参数: - image – 要显示的图片
- title – 对话框窗口标题
-
easygraphics.dialog.
show_table
(datas: Sequence[T_co], fields: Sequence[str] = None, field_names: Sequence[str] = None, title: str = 'Title', width: int = 720, height: int = 450, enable_sorting=False)¶ 以表格形式显示一组对象。
>>> from easygraphics.dialog import * >>> class Person: >>> def __init__(self,name,age,sex): >>> self.name=name >>> self.age = age >>> self.sex = sex >>> objs = [Person("Jack", 22, "M"), Person("Micheal", 40, "F"), Person("David", 24, "M")] >>> show_objects(title="peoples",datas=objs,fields=["name","age","sex"],field_names=["NAME","AGE","SEX"])
参数: - datas – 要显示的对象列表
- fields – 要显示的对象属性列表
- field_names – 显示在表头的对象属性名称
- title – 对话框窗口标题
- width – 对话框窗口宽度
- height – 对话框窗口高度
- enable_sorting – if data can be sorted by clicking the column name
-
easygraphics.dialog.
show_lists_table
(*args, column_names: List[str] = None, title: str = 'Title', width: int = 720, height: int = 450)¶ 以表格形式显示多个列表。
>>> from easygraphics.dialog import * >>> x=[1,2,3,4] >>> y=["hah","jack","marry"] >>> show_lists_table(x,y,column_names=['x','y']) .. image:: ../../docs/images/dialogs/show_lists_table.png
参数: - args – 要显示的列表
- column_names – 显示在表头的各字段名(列表名)
- title – 对话框窗口标题
- width – 对话框窗口宽度
- height – 对话框窗口高度
-
easygraphics.dialog.
show_html
(title: str = 'Title', text: str = '', width: int = 720, height: int = 450)¶ 在窗口中显示html代码。
参数: - title – 对话框标题
- text – 要显示在对话框中的内容
- width – 对话框窗口宽度
- height – 对话框窗口高度
>>> from easygraphics.dialog import * >>> show_html()