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