跳转到主要内容

在终端中使用简单GUI选择一个选项

项目描述

pick [![构建状态](https://travis-ci.org/wong2/pick.svg?branch=master)](https://travis-ci.org/wong2/pick) [![PyPI](https://img.shields.io/pypi/v/pick.svg)](https://pypi.python.org/pypi/pick)
====

**pick**是一个小的Python库,可以帮助您在终端中创建基于curses的交互式选择列表。看看它的效果。
![演示](example/basic.gif?raw=true)

### 安装


$ 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 查看哈希值)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面