0
from kivymd.app import MDApp
from kivy.lang import Builder
from plyer import filechooser
from kivy.core.window import Window
from iv import imv
from kivy.uix.screenmanager import ScreenManager, Screen

Window.size = (300, 500)


class ImageScreen(Screen):
    pass

class FileChooser(MDApp):
    def build(self):
        Builder.load_string((imv))
        sm = ScreenManager()
        sm.add_widget(ImageScreen(name='image'))
        return sm

    def file_chooser(self):
        filechooser.open_file(on_selection=self.selected)

    def selected(self, selection):
        if selection:
            self.root.ids.img.source = selection[0]



FileChooser().run()

my kivymd file

imv = """
ScreenManager:
    ImageScreen:
<ImageScreen>:
    name: 'image'
    MDFloatLayout: 
        Image:
            id: img 
        MDRaisedButton:
            text:"upload"
            pos_hint: {'center_x': 0.5, 'center_y': 0.46}
            on_release:
                app.file_chooser()
        MDLabel:
            id: selected_path
            text: ""
            halign: "center"
"""

why it showing below error? AttributeError: 'super' object has no attribute 'getattr'

i want to use image viewer on different screen for creating an app so used this code as testing but it showing error.If i use it kivy code directly without ImageScreen class it works but i need it in ImageScreen class because i want to add more screen in the app. i don't know how to solve this ,.,

Nameless
  • 1
  • 2

0 Answers0