<p>python库<a href="http://urwid.org/index.html" rel="nofollow noreferrer">^{<cd1>}</a>似乎没有包含日期选择器(stateof2018)。所以我写了一篇(初步的)文章。在</p>
<p>这个类叫做<a href="https://github.com/AFoeee/additional_urwid_widgets/wiki/DatePicker" rel="nofollow noreferrer">^{<cd2>}</a>,并且<strong>可以通过<a href="https://pypi.org/project/additional-urwid-widgets/" rel="nofollow noreferrer">pip</a></strong>安装。在</p>
<p><a href="https://i.stack.imgur.com/cGItI.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/cGItI.png" alt="Demonstration of date picker #1"/></a>
<a href="https://i.stack.imgur.com/9fpgD.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/9fpgD.png" alt="Demonstration of date picker #2"/></a></p>
<p><br/>
有关说明小部件功能的<strong>独立示例</strong>,请参见<a href="https://github.com/AFoeee/additional_urwid_widgets/blob/master/stand_alone_examples/date_picker_example.py" rel="nofollow noreferrer">here</a>。在</p>
<p>如需更多(更简单)的<strong>示例</strong>,请参阅<a href="https://github.com/AFoeee/additional_urwid_widgets/wiki/DatePicker#examples" rel="nofollow noreferrer">here</a>。在</p>
<p>有关参数和选项的详细说明,请参见<a href="https://github.com/AFoeee/additional_urwid_widgets/wiki/DatePicker" rel="nofollow noreferrer">the corresponding github wiki entry</a>。在</p>
<p><br/></p>
<hr/>
<h2>一些例子</h2>
<h3>最小</h3>
<pre><code>#! /usr/bin/env python3
# -*- coding: utf-8 -*-
from additional_urwid_widgets import DatePicker, MODIFIER_KEY # installed via pip
import urwid # installed via pip
# Color schemes that specify the appearance off focus and on focus.
PALETTE = [("reveal_focus", "black", "white")]
dp = DatePicker(highlight_prop=("reveal_focus", None)) # By default, the focused picker is not highlighted!
pile = urwid.Pile([urwid.Text("press additionally the key modifier (default is 'ctrl')."),
urwid.Divider(" "),
dp])
loop = urwid.MainLoop(urwid.Filler(pile, "top"),
PALETTE)
loop.run()
</code></pre>
<p><a href="https://i.stack.imgur.com/x3PHb.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/x3PHb.png" alt="Demonstration of example 'Minimal'"/></a></p>
<p><br/></p>
<h3>今天不是</h3>
^{pr2}$
<p><a href="https://i.stack.imgur.com/GMzqa.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/GMzqa.png" alt="Demonstration of example 'Not today'"/></a></p>
<p><br/></p>
<h3>ISO-8601+样式+紧凑型</h3>
<pre><code>#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import calendar
from additional_urwid_widgets import DatePicker, MODIFIER_KEY # installed via pip
import urwid # installed via pip
# Color schemes that specify the appearance off focus and on focus.
PALETTE = [("dp_barActive_focus", "light gray", ""),
("dp_barActive_offFocus", "black", ""),
("dp_barInactive_focus", "dark gray", ""),
("dp_barInactive_offFocus", "black", ""),
("dp_highlight_focus", "black", "brown", "standout"),
("dp_highlight_offFocus", "white", "black")]
dp = DatePicker(month_names=[str(i).zfill(2) for i in range(13)],
day_format=[DatePicker.DAY_FORMAT.DAY_OF_MONTH_TWO_DIGIT],
columns=((6, DatePicker.PICKER.YEAR), (4, DatePicker.PICKER.MONTH), (4, DatePicker.PICKER.DAY)),
min_width_each_picker=4,
space_between=1,
topBar_endCovered_prop=("ᐃ", "dp_barActive_focus", "dp_barActive_offFocus"),
topBar_endExposed_prop=("───", "dp_barInactive_focus", "dp_barInactive_offFocus"),
bottomBar_endCovered_prop=("ᐁ", "dp_barActive_focus", "dp_barActive_offFocus"),
bottomBar_endExposed_prop=("───", "dp_barInactive_focus", "dp_barInactive_offFocus"),
highlight_prop=("dp_highlight_focus", "dp_highlight_offFocus"))
pile = urwid.Pile([urwid.Text("press additionally the key modifier (default is 'ctrl')."),
urwid.Divider(" "),
dp])
loop = urwid.MainLoop(urwid.Filler(pile, "top"),
PALETTE)
loop.run()
</code></pre>
<p><a href="https://i.stack.imgur.com/U2PpR.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/U2PpR.png" alt="Demonstration of example 'ISO-8601 + Styled + Compact'"/></a></p>