我正在与Kivy建立几个下拉列表以获取日期:
下拉日、下拉月等
但是对于下拉日,我需要知道年份和月份来计算天数
因此,我想使用“年份下拉列表”和“月份下拉列表”的值来计算天数。例如,2019年11月,我会有一个30个按钮的下拉列表
这些问题是:
——>;似乎无法使用链接按钮值
int(button.text)
以下是我节目的主要部分。 我写了以下5个下拉列表(这一个是2019年到2020年的):
dropdown2=DropDown()
for y in range(today.year,today.year+2):
btn = Button(text='%d' %y,size_hint_y=None,height=44)
btn.bind(on_release=lambda btn:dropdown2.select(btn.text))
dropdown2.add_widget(btn)
yearbutton = Button(text='Année', size_hint=(None, None))
yearbutton.bind(on_release=dropdown2.open)
dropdown2.bind(on_select=lambda instance,value2: setattr(yearbutton, 'text',value2))
然后我想使用yearbutton.text来定义daybutton,如下所示:
dropdown3=DropDown()
for d in range(1,calendar.monthrange(int(yearbutton.text),int(monthbutton.text))[1]+1):
btn=Button(text='%d' %d,size_hint_y=None,height=44)
btn.bind(on_release=lambda btn: dropdown3.select(btn.text))
dropdown3.add_widget(btn)
daybutton=Button(text='Jour',size_hint=(None,None))
daybutton.bind(on_release=dropdown3.open)
dropdown3.bind(on_select=lambda instance,value3:setattr(daybutton,'text',value3))
当然,这个错误发生在“for”行中:
ValueError: invalid literal for int() with base 10: 'Année'
因为我的“yearbutton”的初始值是一个字符串
雷普雷克斯:
import calendar
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.dropdown import DropDown
from kivy.app import App
class Design(GridLayout):
def __init__(self,**kwargs):
super(Design,self). __init__(**kwargs)
self.cols=1 #cols du widget button
self.inside = GridLayout() #creation d'un widget-layout
self.inside.cols=4
dropdown1=DropDown()
for month in range (1,13):
btn = Button(text='%d' % month, size_hint_y=None, height=44)
btn.bind(on_release=lambda btn: dropdown1.select(btn.text))
dropdown1.add_widget(btn)
monthbutton = Button(text='Mois', size_hint=(None, None))
monthbutton.bind(on_release=dropdown1.open)
dropdown1.bind(on_select=lambda instance, value1: setattr(monthbutton, 'text', value1))
dropdown3=DropDown()
for d in range(1,calendar.monthrange(2019,int(monthbutton.text))[1]+1):
btn=Button(text='%d' %d,size_hint_y=None,height=44)
btn.bind(on_release=lambda btn: dropdown3.select(btn.text))
dropdown3.add_widget(btn)
daybutton=Button(text='Jour',size_hint=(None,None))
daybutton.bind(on_release=dropdown3.open)
dropdown3.bind(on_select=lambda instance,value3:setattr(daybutton,'text',value3))
self.inside.add_widget(daybutton)
self.inside.add_widget(monthbutton)
self.add_widget(self.inside)
class MyApp(App):
def build(self):
return Design()
if __name__=="__main__":
MyApp().run()
最后使用Kivy日历,更简单
相关问题 更多 >
编程相关推荐