如何根据DatePicker
使用TextInput
?当textinput
字段集中显示弹出窗口CalendarWidget
时。选择数据后,选择的日期不会放入textinput
{1}}字段。
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.popup import Popup
from KivyCalendar import CalendarWidget
from kivy.core.window import Window
Window.clearcolor = (0.5, 0.5, 0.5, 1)
Window.size = (400, 250)
class SetIndex(BoxLayout):
def __init__(self):
super(SetIndex, self).__init__()
def setDate(self):
self.cal = CalendarWidget(as_popup=True)
self.popup = Popup(title='Calendar', content=self.cal, size_hint=(1, 1))
self.popup.open()
class Demo(App):
def build(self):
return SetIndex()
if __name__ == '__main__':
Demo().run()
<SetIndex>:
BoxLayout:
orientation: "vertical"
padding : 20, 20
size_hint_y: .5
BoxLayout:
orientation: "horizontal"
padding: 10, 10
spacing: 10, 10
size_hint_x: .6
Label:
text: "TEXT"
text_size: self.size
valign: 'middle'
size_hint_x: .2
TextInput:
size_hint_x: .4
id: old_date
on_focus: root.setDate()
答案 0 :(得分:1)
你使用哪个python版本?
KivyCalendar是一个用2.7 python版本编写的过时库,它根本不适用于3.6 python。
除非您愿意使用不受支持的日期库,否则我建议您寻找替代方案。
UPD: 好的,所以我找不到任何替代方案,以下是这个库的工作方式: 您需要设置一个DatePicker,它是一个textinput,具有所有必要的弹出/值处理
RPCServerConfiguration
您实际的代码只需要导入DatePicker,这就是它的全部内容
<SetIndex>:
BoxLayout:
orientation: "vertical"
padding : 20, 20
size_hint_y: .5
DatePicker:
pHint: 1,1
size_hint_x: .4
id: old_date