def pop1(self):
pop = Popup(title='test',content=Image('boy.png'),
size_hint=(None,None))
pop.open()
然后用kv语言我试着从按钮on_press事件中调用它。 kv文件的代码就是这个。
BoxLayout:
size:self.parent.size
orientation:'horizontal'
spacing:10
padding:5
Button:
text:
size_hint:.3,.3
on_press:
root.pop1()
当我尝试运行它时,我收到如下错误:
: _container:容器 网格布局: 填充:12 keyError:'pos_hint'
答案 0 :(得分:3)
首先,由于您在此案例中致电root.pop1()
和root
是BoxLayout
我假设您在您调用的类pop1
中定义了BoxLayout
函数1}}继承自BoxLayout
?如果是这样的话,你基本上会覆盖一个kivy类,这将搞砸了。
第二个问题是,如果Image('boy.png')
为Image(source='boy.png')
,请致电text
。
最后,在按钮中,您忘记将from kivy.app import runTouchApp
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.popup import Popup
from kivy.uix.image import Image
from kivy.lang import Builder
kv = '''
BoxLayoutWithPopup:
orientation:'horizontal'
spacing:10
padding:5
Button:
text: 'Press me'
size_hint:.3,.3
on_press:
root.pop1()
'''
class BoxLayoutWithPopup(BoxLayout):
def pop1(self):
pop = Popup(title='test', content=Image(source='boy.png'),
size_hint=(None, None), size=(400, 400))
pop.open()
if __name__ == '__main__':
runTouchApp(Builder.load_string(kv))
设置为值。
使用以下代码更好地完成您要完成的任务:
{{1}}