python 库 "urwid" 是否包含用于读取日期的小部件(日期选择器)?
Does the python library "urwid" contain a widget for reading in dates (datepicker)?
npyscreen has the widgets "DateCombo" and "TitleDateCombo" 选择日期。
urwid中有没有类似的东西?
如果没有,有没有推荐的第三方库?
这是一个使用 npyscreen 的例子:
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import npyscreen
class DateForm(npyscreen.Form):
def afterEditing(self):
self.parentApp.setNextForm(None)
def create(self):
self.date = self.add(npyscreen.TitleDateCombo, name="Date")
class TestApplication(npyscreen.NPSAppManaged):
def onStart(self):
new_user = self.addForm("MAIN", DateForm, name="Read Date")
if __name__ == "__main__":
TestApplication().run()
不,urwid 没有日期选择器,它是一个实现起来很复杂的小部件,值得拥有自己的项目,因为这些小部件通常需要考虑日期格式、区域设置等。
我不知道有任何实现它的 urwid 库,通过快速扫描我知道的也找不到任何库。
您可以尝试购买一个图书馆,但如果您自己根据自己的特定需求实施一个图书馆,您可能会更幸运。
python 库 urwid
似乎不包含日期选择器(2018 年的状态)。因此我写了一个(基本的)。
class被称为additional_urwid_widgets.DatePicker
and can be installed via pip。
有关说明小部件功能的独立示例,请参阅here。
有关更多(和更简单)示例,请参阅here。
有关参数和选项的详细说明,请参阅the corresponding github wiki entry。
一些例子
最小
#! /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()
今天不行
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import datetime
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")]
not_today = datetime.date(2018, 2, 20)
dp = DatePicker(initial_date=not_today,
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()
ISO-8601 + 样式化 + 紧凑
#! /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()
npyscreen has the widgets "DateCombo" and "TitleDateCombo" 选择日期。
urwid中有没有类似的东西? 如果没有,有没有推荐的第三方库?
这是一个使用 npyscreen 的例子:
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import npyscreen
class DateForm(npyscreen.Form):
def afterEditing(self):
self.parentApp.setNextForm(None)
def create(self):
self.date = self.add(npyscreen.TitleDateCombo, name="Date")
class TestApplication(npyscreen.NPSAppManaged):
def onStart(self):
new_user = self.addForm("MAIN", DateForm, name="Read Date")
if __name__ == "__main__":
TestApplication().run()
不,urwid 没有日期选择器,它是一个实现起来很复杂的小部件,值得拥有自己的项目,因为这些小部件通常需要考虑日期格式、区域设置等。
我不知道有任何实现它的 urwid 库,通过快速扫描我知道的也找不到任何库。
您可以尝试购买一个图书馆,但如果您自己根据自己的特定需求实施一个图书馆,您可能会更幸运。
python 库 urwid
似乎不包含日期选择器(2018 年的状态)。因此我写了一个(基本的)。
class被称为additional_urwid_widgets.DatePicker
and can be installed via pip。
有关说明小部件功能的独立示例,请参阅here。
有关更多(和更简单)示例,请参阅here。
有关参数和选项的详细说明,请参阅the corresponding github wiki entry。
一些例子
最小
#! /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()
今天不行
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import datetime
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")]
not_today = datetime.date(2018, 2, 20)
dp = DatePicker(initial_date=not_today,
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()
ISO-8601 + 样式化 + 紧凑
#! /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()