我在使用Kivy设置面板时遇到了一个问题,当我打开和关闭面板时,我的按钮小部件的文本属性被清除,即使它们仍然正确显示
下面的代码演示了这个问题:
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
def build(self):
widget = Button(text='Hello World')
widget.bind(on_release=self._button_callback)
return widget
def _button_callback(self, button):
debug_string = f'{hex(id(button))}:{type(button.text)}:{button.text}'
print(debug_string)
if __name__=='__main__':
app = TestApp()
app.run()
程序运行时,显示一个带有单个按钮的窗口。显示文本为"Hello World",单击此按钮将产生以下
0x172aba17ed0:<class 'str'>:Hello World
如果我然后按F1并打开默认的Kivy设置面板,然后关闭面板(不更改设置选项)并再次按下按钮,我得到以下内容:
0x172aba17ed0:<class 'str'>:
这对我来说似乎有点奇怪,为什么按钮的文本属性被覆盖?按钮上显示的文本保持一致。
本例使用Python 3.10.4(64位)和Kivy 2.1.0运行
没有从kivy. ux中导入setingwithspinner类。设置,与python设置相关,冻结GUI。
如果没有导入,则在运行时不会报告错误和存在错误,包括导入似乎可以解决问题。