Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 浏览图像文件并将其显示在kivy窗口中_Python_User Interface_Kivy_Kivy Language - Fatal编程技术网

Python 浏览图像文件并将其显示在kivy窗口中

Python 浏览图像文件并将其显示在kivy窗口中,python,user-interface,kivy,kivy-language,Python,User Interface,Kivy,Kivy Language,我是Kivy的初学者,尝试使用Kivy fileChooser浏览图像文件,然后将其显示在窗口上。贝娄:你找到了我的代码,但它无法完成任务。它只是在控制台上显示“?PNG”。请和我一起看看这个 import kivy from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.lang import Builder from kivy.uix.image impor

我是Kivy的初学者,尝试使用Kivy fileChooser浏览图像文件,然后将其显示在窗口上。贝娄:你找到了我的代码,但它无法完成任务。它只是在控制台上显示“?PNG”。请和我一起看看这个

    import kivy
    from kivy.app import App
    from kivy.uix.boxlayout import BoxLayout
    from kivy.lang import Builder
    from kivy.uix.image import Image
    import os

    Builder.load_string("""
    <MyWidget>:
        id: my_widget
        Button
            text: "open"
            on_release: my_widget.open(filechooser.path, 
    filechooser.selection)
        FileChooserListView:
            id: filechooser
            on_selection: my_widget.selected(filechooser.selection)
    """)

    class MyWidget(BoxLayout):
        def open(self, path, filename):
            with open(os.path.join(path, filename[0])) as f:
                print f.read()

        def selected(self, filename):
            return Image(source=filename[0])

    class MyApp(App):
        def build(self):
            return MyWidget()

    if __name__ == '__main__':
        MyApp().run()
导入kivy
从kivy.app导入应用程序
从kivy.uix.boxlayout导入boxlayout
从kivy.lang导入生成器
从kivy.uix.image导入图像
导入操作系统
生成器。加载\u字符串(“”)
:
id:my_小部件
按钮
正文:“打开”
发布时:my_widget.open(filechooser.path,
filechooser.selection)
文件选择器列表视图:
id:filechooser
在\u选择上:我的\u小部件.selected(filechooser.selection)
""")
类MyWidget(BoxLayout):
def open(自身、路径、文件名):
将open(os.path.join(path,filename[0])作为f:
打印f.read()
已选择def(自身,文件名):
返回图像(源=文件名[0])
类别MyApp(应用程序):
def生成(自):
返回MyWidget()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
MyApp().run()
试试这个:
我排除了“打开”按钮,仅在选中时显示它。
因此,我们添加了一个
图像
小部件,并在选中时设置其源

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder


Builder.load_string("""
<MyWidget>:
    id: my_widget
    FileChooserListView:
        id: filechooser
        on_selection: my_widget.selected(filechooser.selection)
    Image:
        id: image
        source: ""
""")


class MyWidget(BoxLayout):

    def selected(self,filename):
        self.ids.image.source = filename[0]


class MyApp(App):
    def build(self):
        return MyWidget()


if __name__ == '__main__':
    MyApp().run()

@我知道你会来的
class MyWidget(BoxLayout):

    def selected(self,filename):
        try:
            self.ids.image.source = filename[0]
        except:
            pass