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:弹出窗口中的多个项目不起作用的主要内容,如果未能解决你的问题,请参考以下文章