При попытке изменить отображаемый текст виджета TextInput я столкнулся с этой ошибкой:
AttributeError: 'super' object has no attribute '__getattr__'
Выдает ошибку и программа останавливается.
Ошибка в файле .py, строка 35.
Эта проблема возникает, только когда эта конкретная строка находится в коде; в противном случае это работает.
.py файл:
from kivy.app import App
from kivy.uix.tabbedpanel import TabbedPanel
import nibabel as nib
from kivy.garden.filebrowser import FileBrowser
from kivy.utils import platform
from kivy.uix.popup import Popup
from kivy.uix.textinput import TextInput
from kivy.lang import Builder
Builder.load_file("stack-test2.kv")
class Tabs(TabbedPanel):
def nOpen(self):
npop = niiPop()
npop.open()
class niiPop(Popup):
pathVariable = ' '
file = ' '
def nProcessor(self):
if len(self.ids.nFile.selection) == 1:
niiPop.pathVariable = str(self.ids.nFile.selection[0])
niiPop.file = nib.load(niiPop.pathVariable)
displayHeader = TextInput(text = str(niiPop.file.header), readonly = True)
self.ids.nFile.clear_widgets()
self.ids.nFile.add_widget(displayHeader)
niiPop.auto_dismiss = True
self.ids.fld1.text = niiPop.pathVariable
else:
self.ids.nFile.filename = ''
class stackTest1(App):
def build(self):
self.title = 'Test app'
return Tabs()
if __name__ == "__main__":
app = stackTest1()
app.run()
.kv файл:
<TabbedPanelStrip>:
<Tabs>:
do_default_tab: False
tab_width: self.size[0] / 3
TabbedPanelItem:
text: 'Setup'
id: tab1
BoxLayout:
orientation: 'horizontal'
BoxLayout:
orientation: 'vertical'
BoxLayout:
orientation: 'horizontal'
Label:
text: 'file import'
size_hint: (0.3, 0.2)
TextInput:
id: fld1
text: ' '
multiline: False
readonly: True
size_hint: (0.6, 0.2)
Button:
id: btn1
text: '...'
size_hint: (0.1, 0.2)
on_press: root.nOpen()
TabbedPanelItem:
text: 'tab2'
TabbedPanelItem:
text: 'tab3'
<niiPop>:
id: niiPop
title: 'Select a file'
size_hint: (0.8, 0.8)
auto_dismiss: False
BoxLayout:
orientation: 'vertical'
FileBrowser:
id: nFile
filters: ['*.nii']
select_string: 'Select'
on_success: root.nProcessor()
on_canceled: root.dismiss()
Журнал ошибок вывода:
self.ids.fld1.text = niiPop.pathVariable
File "kivy\properties.pyx", line 841, in kivy.properties.ObservableDict.__getattr__
AttributeError: 'super' object has no attribute '__getattr__'
Заранее благодарю за любую помощь.