如何在kivy中将图像加载为弹出窗口

时间:2014-03-04 16:13:47

标签: android python kivy

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'

1 个答案:

答案 0 :(得分:3)

首先,由于您在此案例中致电root.pop1()rootBoxLayout我假设您在您调用的类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}}