作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的应用程序的 FlashDisplayPage 中使用轮播。我想在旋转木马内使用标签。我搜索了相关网站并编写了以下代码。我是 kivy 的新手,所以我不知道这是否是正确的方法。如果不是,我怎样才能使它正确?
这里也发生错误,即使我在 FlashDisplayPage 中定义了 label_name,我也收到此错误 - AttributeError: 'FlashDisplayPage' 对象没有属性 'label_name'。为什么会出现这个错误?我怎样才能删除它?
这里是发生错误的代码部分-
class FlashDisplayPage(Screen):
def on_enter(self):
Num=self.index
card=['flash_card1.json','flash_card2.json','flash_card3.json','flash_card4.json','flash_card5.json','flash_card6.json','flash_card7.json','flash_card8.json','flash_card9.json','flash_card10.json']
label_name='Flash Card '+ Num #here I have defined label_name
with open(card[Num+1]) as frfile:
flash_data=json.load(frfile)
for i in flash_data:
self.ids.CarDisplay.add_widget(Label(text=i['word']+' : '+i['meaning']))
# here I am adding label to carousel
def next_one(self):
self.ids.CarDisplay.direction='right' # next label in carousel
def previous_one(self):
self.ids.CarDisplay.direction='left' # previous label in carousel
这里是与此相关的 kv 代码部分-
<FlashDisplayPage>:
BoxLayout:
orientation: 'horizontal'
spacing:15
padding: 20
Label:
id: l
text: root.label_name
sixe_hint_y: None
height: 100
Carousel:
id: CarDisplay
loop: True
Button:
text:'next'
size_hint: None,.20
width: 30
on_press:root.next_one()
Button:
text:'next'
size_hint: None,.20
width: 130
on_press:root.previous_one()
最佳答案
label_name
是 on_enter 函数中的局部变量,局部变量只能在创建它们的函数或范围内访问。如果您希望可访问,一个可能的解决方案是使其成为小部件的属性:
from kivy.properties import StringProperty
class FlashDisplayPage(Screen):
label_name = StringProperty("")
def on_enter(self):
[...]
self.label_name='Flash Card {}'.format(Num)
[...]
关于python - 收到错误 AttributeError : 'FlashDisplayPage' object has no attribute 'label_name' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49080919/
我在我的应用程序的 FlashDisplayPage 中使用轮播。我想在旋转木马内使用标签。我搜索了相关网站并编写了以下代码。我是 kivy 的新手,所以我不知道这是否是正确的方法。如果不是,我怎样才
我是一名优秀的程序员,十分优秀!