在 Kivy 中添加文件浏览器
Add filebrowser in Kivy
我有一个显示 2 个图像的简单工作代码,但是我希望它在浏览文件后显示。
我的代码:
from kivy.uix.image import Image
from kivy.uix.floatlayout import FloatLayout
from kivy.app import App
from kivy.uix.scatter import Scatter
class CanvasApp(App):
def build(self):
f = floatlayout()
s = Scatter()
s1 = Scatter()
img_1 = Image(source='img0.jpg',pos=(10,280), size=(300,300))
img_2 = Image(source='img1.jpg',pos=(350,280), size=(300,300))
f.add_widget(s)
s.add_widget(img_1)
f.add_widget(s1)
f.add_widget(img_2)
return f
if __name__ == '_main__':
CanvasApp().run()
以上代码中的问题:
1. 如何使用文件浏览器在源代码中提供路径,我对文件浏览器的了解,
from os.path import sep, expanduser, isdir, dirname
user_path = expanduser('~') + sep + 'Documents'
browser = FileBrowser(select_string='Select',
favorites=[(user_path, 'Documents')])
我如何对两个图像独立使用散点图。在上面提到的方法中,我只能在 img0.jpg
上使用散点属性
在原始 kivy.garden.Filebrowser 示例中,未提及以下两个导入:
从 kivy.garden.filebrowser 导入 FileBrowser
来自 kivy.utils 导入平台
这是一个小的工作示例:
from kivy.app import App
from os.path import sep, expanduser, isdir, dirname
from kivy.garden.filebrowser import FileBrowser
from kivy.utils import platform
class TestApp(App):
def build(self):
if platform == 'win':
user_path = dirname(expanduser('~')) + sep + 'Documents'
else:
user_path = expanduser('~') + sep + 'Documents'
browser = FileBrowser(select_string='Select',
favorites=[(user_path, 'Documents')])
browser.bind(
on_success=self._fbrowser_success,
on_canceled=self._fbrowser_canceled)
return browser
def _fbrowser_canceled(self, instance):
print ('cancelled, Close self.')
def _fbrowser_success(self, instance):
print (instance.selection)
TestApp().run()
我有一个显示 2 个图像的简单工作代码,但是我希望它在浏览文件后显示。
我的代码:
from kivy.uix.image import Image
from kivy.uix.floatlayout import FloatLayout
from kivy.app import App
from kivy.uix.scatter import Scatter
class CanvasApp(App):
def build(self):
f = floatlayout()
s = Scatter()
s1 = Scatter()
img_1 = Image(source='img0.jpg',pos=(10,280), size=(300,300))
img_2 = Image(source='img1.jpg',pos=(350,280), size=(300,300))
f.add_widget(s)
s.add_widget(img_1)
f.add_widget(s1)
f.add_widget(img_2)
return f
if __name__ == '_main__':
CanvasApp().run()
以上代码中的问题: 1. 如何使用文件浏览器在源代码中提供路径,我对文件浏览器的了解,
from os.path import sep, expanduser, isdir, dirname
user_path = expanduser('~') + sep + 'Documents'
browser = FileBrowser(select_string='Select',
favorites=[(user_path, 'Documents')])
我如何对两个图像独立使用散点图。在上面提到的方法中,我只能在 img0.jpg
上使用散点属性在原始 kivy.garden.Filebrowser 示例中,未提及以下两个导入:
从 kivy.garden.filebrowser 导入 FileBrowser
来自 kivy.utils 导入平台
这是一个小的工作示例:
from kivy.app import App
from os.path import sep, expanduser, isdir, dirname
from kivy.garden.filebrowser import FileBrowser
from kivy.utils import platform
class TestApp(App):
def build(self):
if platform == 'win':
user_path = dirname(expanduser('~')) + sep + 'Documents'
else:
user_path = expanduser('~') + sep + 'Documents'
browser = FileBrowser(select_string='Select',
favorites=[(user_path, 'Documents')])
browser.bind(
on_success=self._fbrowser_success,
on_canceled=self._fbrowser_canceled)
return browser
def _fbrowser_canceled(self, instance):
print ('cancelled, Close self.')
def _fbrowser_success(self, instance):
print (instance.selection)
TestApp().run()