您可以说,我有很多东西要学。我似乎还没有赶上,所以这个问题与我刚刚发布的最后一个问题非常相似。我希望我的按钮单击以通知我它已经被单击,但是出现两个错误。 .gitignore
和 Guardfile
。我希望每当打开弹出框并按下KeyError: 'calendar_butt'
按钮时都引用CalendarButt函数
主.py文件
AttributeError: 'super' object has no attribute '__getattr__'
主KV文件
set_event
January.kv
from kivy.config import Config
Config.set('graphics', 'resizable', False)
Config.set('graphics', 'width', '800')
Config.set('graphics', 'height', '600')
from datetime import datetime, date, time, timedelta
from kivy.app import App
from kivy.clock import Clock
from kivy.uix.screenmanager import Screen, ScreenManager, NoTransition
from kivy.uix.button import ButtonBehavior, Button
from kivy.uix.popup import Popup
class CalendarButt(Button):
def button_clicked(self):
if self.ids.calendar_butt.state == 'down':
print('Hello')
class ScheduledPopup(Popup):
pass
class ButtonPopup(Popup):
def schedule_event(self, *args):
if self.ids.set_event.state == 'down':
CalendarButt(text=self.ids.scheduled_event.text)
print(self.ids.scheduled_event.text)
class CalendarLayout(Screen):
pass
class January(Screen):
pass
class ManageScreens(ScreenManager):
pass
class Calendar(App):
def build(self):
return ManageScreens()
if __name__ == '__main__':
Calendar().run()
答案 0 :(得分:0)
在您的prompt()
方法中,您引用的是button_clicked()
:
self.ids.calendar_butt
与此有关的两个问题。
首先,您尚未在class CalendarButt(Button):
def button_clicked(self):
if self.ids.calendar_butt.state == 'down':
print('Hello')
中定义任何ids
。有关CalendarButt
的详细信息,请参见documentation。由于没有ids
,因此ids
会引发您看到的错误。如果您向上滚动显示的错误消息,则应该在错误开始处附近看到一个self.ids.calendar_butt
。
第二,由于KeyError: 'calendar_butt'
是button_clicked()
中的方法,因此CalendarButt
的实例就是CalendarButt
,因此您的代码应为:
self
通过上述更改,您的代码似乎可以正常工作。