在终端中使用简单GUI选择一个选项
项目描述
pick [](https://travis-ci.org/wong2/pick) [](https://pypi.python.org/pypi/pick)
====
**pick**是一个小的Python库,可以帮助您在终端中创建基于curses的交互式选择列表。看看它的效果。

### 安装
$ pip install pick
### 使用
**pick**提供了一个简单的API
>>> from pick import pick
>>> title = '请选择您最喜欢的编程语言:'
>>> options = ['Java', 'JavaScript', 'Python', 'PHP', 'C++', 'Erlang', 'Haskell']
>>> option, index = pick(options, title)
>>> print option
>>> print index
>>> 输出
>>> C++
**pick**多选示例
>>> 4
>>> title = '请选择您最喜欢的编程语言(按空格标记,按回车继续):'
>>> title = '请选择您最喜欢的编程语言:'
>>> selected = pick(options, title, multi_select=True, min_selection_count=1)
>>> option, index = pick(options, title)
>>> print selected
>>> [('Java', 0), ('C++', 4)]
>>> C++
>>> 输出
#### 选项
* `options`: 可选择的选项列表
* `title`: (可选)选项列表上方的标题
* `indicator`: (可选)自定义选择指示器,默认为*
* `default_index`: (可选)如果默认选中的选项不是第一个,则设置此选项
* `multi_select`: (可选),如果设置为True,则可以通过按空格选择多个项目
* `min_selection_count`: (可选)对于多选功能,在继续之前指定必须选择的最小项目数
**`options_map`**: (可选) 一个映射函数,用于在显示之前将每个选项传递给它
**`multi_select_foreground_color`**: (可选) 在多选模式中选择选项的前景色
**`multi_select_background_color`**: (可选) 在多选模式中选择选项的背景色
#### 注册自定义处理器
有时您可能需要为特定的键盘键注册自定义处理器,您可以使用`register_custom_handler` API
>>> from pick import Picker
>>> title, options = 'Title', ['Option1', 'Option2']
>>> picker = Picker(options, title)
>>> def go_back(picker)
... return None, -1
>>> picker.register_custom_handler(ord('h'), go_back)
>>> option, index = picker.start()
**自定义处理器将使用`picker`实例作为参数调用**。
**自定义处理器应返回一个包含两个元素的元组,或者None**。
**如果返回None,则选择器将继续运行,否则选择器将停止并返回元组**。
#### 选项映射
如果您的选项不是您想要的显示格式(例如字典),您可以将映射函数传递进来,该函数将对每个选项运行。函数的返回值将被显示。
**选择的选项将是原始值,而不是`options_map`函数显示的返回结果**。
**pick选项映射示例**
>>> title = '请选择您最喜欢的编程语言:'
>>> title = '请选择一个选项: '
>>> options = [{'label': 'option1'}, {'label': 'option2'}, {'label': 'option3'}]
>>> def get_label(option): return option.get('label')
>>> selected = pick(options, title, indicator='*', options_map=get_label)
>>> [('Java', 0), ('C++', 4)]
**显示**
请选择一个选项
* option1
option2
option3
>>> C++
>>> ({ 'label': 'option1' }, 0)
### 多选颜色
使用`multi_select_foreground_color`和`multi_select_background_color`选项,您可以指定在多选模式中用户选择选项时使用的颜色。
接受的颜色是[curses](https://docs.pythonlang.cn/2/library/curses.html)预定义的颜色常量,作为字符串传递
```
'COLOR_BLACK'
'COLOR_BLUE'
'COLOR_CYAN'
'COLOR_GREEN'
'COLOR_MAGENTA'
'COLOR_RED'
'COLOR_WHITE'
'COLOR_YELLOW'
```
====
**pick**是一个小的Python库,可以帮助您在终端中创建基于curses的交互式选择列表。看看它的效果。

### 安装
$ pip install pick
### 使用
**pick**提供了一个简单的API
>>> from pick import pick
>>> title = '请选择您最喜欢的编程语言:'
>>> options = ['Java', 'JavaScript', 'Python', 'PHP', 'C++', 'Erlang', 'Haskell']
>>> option, index = pick(options, title)
>>> print option
>>> print index
>>> 输出
>>> C++
**pick**多选示例
>>> 4
>>> title = '请选择您最喜欢的编程语言(按空格标记,按回车继续):'
>>> title = '请选择您最喜欢的编程语言:'
>>> selected = pick(options, title, multi_select=True, min_selection_count=1)
>>> option, index = pick(options, title)
>>> print selected
>>> [('Java', 0), ('C++', 4)]
>>> C++
>>> 输出
#### 选项
* `options`: 可选择的选项列表
* `title`: (可选)选项列表上方的标题
* `indicator`: (可选)自定义选择指示器,默认为*
* `default_index`: (可选)如果默认选中的选项不是第一个,则设置此选项
* `multi_select`: (可选),如果设置为True,则可以通过按空格选择多个项目
* `min_selection_count`: (可选)对于多选功能,在继续之前指定必须选择的最小项目数
**`options_map`**: (可选) 一个映射函数,用于在显示之前将每个选项传递给它
**`multi_select_foreground_color`**: (可选) 在多选模式中选择选项的前景色
**`multi_select_background_color`**: (可选) 在多选模式中选择选项的背景色
#### 注册自定义处理器
有时您可能需要为特定的键盘键注册自定义处理器,您可以使用`register_custom_handler` API
>>> from pick import Picker
>>> title, options = 'Title', ['Option1', 'Option2']
>>> picker = Picker(options, title)
>>> def go_back(picker)
... return None, -1
>>> picker.register_custom_handler(ord('h'), go_back)
>>> option, index = picker.start()
**自定义处理器将使用`picker`实例作为参数调用**。
**自定义处理器应返回一个包含两个元素的元组,或者None**。
**如果返回None,则选择器将继续运行,否则选择器将停止并返回元组**。
#### 选项映射
如果您的选项不是您想要的显示格式(例如字典),您可以将映射函数传递进来,该函数将对每个选项运行。函数的返回值将被显示。
**选择的选项将是原始值,而不是`options_map`函数显示的返回结果**。
**pick选项映射示例**
>>> title = '请选择您最喜欢的编程语言:'
>>> title = '请选择一个选项: '
>>> options = [{'label': 'option1'}, {'label': 'option2'}, {'label': 'option3'}]
>>> def get_label(option): return option.get('label')
>>> selected = pick(options, title, indicator='*', options_map=get_label)
>>> [('Java', 0), ('C++', 4)]
**显示**
请选择一个选项
* option1
option2
option3
>>> C++
>>> ({ 'label': 'option1' }, 0)
### 多选颜色
使用`multi_select_foreground_color`和`multi_select_background_color`选项,您可以指定在多选模式中用户选择选项时使用的颜色。
接受的颜色是[curses](https://docs.pythonlang.cn/2/library/curses.html)预定义的颜色常量,作为字符串传递
```
'COLOR_BLACK'
'COLOR_BLUE'
'COLOR_CYAN'
'COLOR_GREEN'
'COLOR_MAGENTA'
'COLOR_RED'
'COLOR_WHITE'
'COLOR_YELLOW'
```
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
此版本没有可用的源分发文件。请参阅生成分发存档的教程。
构建分发
pick2-0.7.1-py2.py3-none-any.whl (7.4 kB 查看哈希值)