gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:17:38 26 4
gpt4 key购买 nike

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:容器 网格布局: 填充:12keyError: 'pos_hint'

最佳答案

首先,由于您调用了 root.pop1() 并且 root 在这种情况下是一个 BoxLayout 我假设您定义了您的pop1 函数在你称为 BoxLayout 的类中继承自 BoxLayout?如果是这样,你基本上是在覆盖一个 kivy 类,这会把事情搞砸。

第二个问题是当它应该是 Image(source='boy.png') 时,您却调用了 Image('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))

关于android - 如何在kivy中将图像加载为弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22177183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com