Kivy:弹出窗口中的多个项目不起作用

Posted

技术标签:

【中文标题】Kivy:弹出窗口中的多个项目不起作用【英文标题】:Kivy: Multiple items in a popup wont work 【发布时间】:2014-04-09 23:06:52 【问题描述】:

我正在尝试在 python 中的 kivy 弹出窗口中使用多个项目。我会 想了解如何使这项工作。我不确定这是否与事实有关 该脚本在我的手机上,而不是为计算机制作的。 这是一个小示例脚本,我请您帮助制作以供将来参考。

import kivy
from kivy.lang import Builder
from kivy.uix.popup import Popup
from kivy.uix.textinput import TextInput
from kivy.uix.label import Label

popup = Popup(title='Test popup',
    content=Label(text='Hello world'),
            TextInput(text='Hi'),        #Here is what I am trying to make work
    size_hint=(None, None), size=(400, 400))

所以你可以看到它是弹出窗口的一个内容中的两个对象。我确信这是可能的 因为我在appstore的kivy应用上看到过,但不知道自己怎么做。

【问题讨论】:

您是否尝试过将内容参数设为元组?您发布的代码是语法错误,所以我猜您有但不知道您的问题 我尝试用错误消息'tuple' object has no attribute 'create_property'制作一个元组 【参考方案1】:

Popup 的内容只能是单个小部件。您不能像尝试那样添加两个小部件。

要完成您想要做的事情,您必须将标签和文本输入添加到例如一个 boxlayout,然后将 boxlayout 添加到内容中。这是一个应该有效的示例:

from kivy.uix.popup import Popup
from kivy.uix.textinput import TextInput
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label

box = BoxLayout()
box.add_widget(Label(text='Hello world'))
box.add_widget(TextInput(text='Hi'))

popup = Popup(title='Test popup', content=box, size_hint=(None, None), size=(400, 400))

【讨论】:

谢谢马特!这很有帮助【参考方案2】:

您可以使用 kv 文件来实现此目的。 : 方向:'垂直' 标签: 文字:“你好世界” 按钮: 文字:“按我”

在python文件中: def openPop(自我): self.pop = Popup(title='Test',content=Content(),auto_dismiss=True) self.pop.open()

【讨论】:

【参考方案3】:

你需要这样做:

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.super_box = BoxLayout(orientation = "vertical")
        self.pn = TextInput(text = "projectname") # TODO: Project name input
        self.super_box.add_widget(self.pn)
        """Create button: Creates a new project repo"""
        cb = Button(text="Create")
        cb.bind(on_release = lambda x: print("a new project repo gets created"))
        self.super_box.add_widget(cb)

【讨论】:

以上是关于Kivy:弹出窗口中的多个项目不起作用的主要内容,如果未能解决你的问题,请参考以下文章

python中的Kivy弹出窗口,按钮上有多个on_release操作

TextInput中的kivy ScrollView实现

自动关闭kivy中的弹出窗口

多个 kivy 弹出应用程序

更改 Kivy 中的弹出文本

Kivy Python 中的弹出窗口 - 显示在前面