gpt4 book ai didi

android - 使用 DropDown open() 方法打开自定义 DropDown 不起作用

转载 作者:行者123 更新时间:2023-11-30 00:14:07 29 4
gpt4 key购买 nike

我确实在 kv 文件中定义了一个基本的自定义 DropDown。应用程序 GUI 非常简单,顶部有一个按钮栏,屏幕的其余部分有一个 TextInput。这是代码:

dropdowntrialgui.py

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.dropdown import DropDown

class CustomDropDown(DropDown):
pass

class DropDownTrialGUI(BoxLayout):
dropD = CustomDropDown()

def openMenu(self, widget):
self.dropD.open(widget)


class DropDownTrialGUIApp(App):
def build(self):
return DropDownTrialGUI()


if __name__== '__main__':
dbApp = DropDownTrialGUIApp()

dbApp.run()

和kv文件:

dropdowntrialgui.kv

DropDownTrialGUI:

<CustomDropDown>
Button:
text: 'My first Item'
size_hint_y: None
height: '28dp'
on_release: root.select('item1')
Button:
text: 'My second Item'
size_hint_y: None
height: '28dp'
on_release: root.select('item2')

<DropDownTrialGUI>:
orientation: "vertical"
padding: 10
spacing: 10

BoxLayout:
size_hint_y: None
height: "28dp"
Button:
id: toggleHistoryBtn
text: "History"
size_hint_x: 15
Button:
id: deleteBtn
text: "Delete"
size_hint_x: 15
Button:
id: replaceBtn
text: "Replace"
size_hint_x: 15
Button:
id: replayAllBtn
text: "Replay All"
size_hint_x: 15
Button:
id: menuBtn
text: "..."
size_hint_x: 15
on_press: root.openMenu(self)

TextInput:
id: readOnlyLog
size_hint_y: 1
readonly: True

按 menuBtn 无效。我该如何解决这个问题?

最佳答案

您没有正确初始化类,作为一般规则,您不应该将任何东西定义为类属性(kivy 属性除外),而是通过在 __init__ 中实例化它们来将小部件定义为实例属性 方法:

class DropDownTrialGUI(BoxLayout):
def __init__(self, **kwargs):
super(DropDownTrialGUI, self).__init__(**kwargs)
self.dropD = CustomDropDown()

def openMenu(self, widget):
self.dropD.open(widget)

enter image description here

关于android - 使用 DropDown open() 方法打开自定义 DropDown 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47604169/

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