2015-09-07 110 views
0

我有一个简单的工作代码,可以显示2个图像,但是我希望它在浏览文件后显示。在Kivy中添加文件浏览器

我的代码:

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.如何使用filebrowser,我知道有关文件浏览器提供的源路径,

from os.path import sep, expanduser, isdir, dirname 
user_path = expanduser('~') + sep + 'Documents' 
browser = FileBrowser(select_string='Select', 
         favorites=[(user_path, 'Documents')]) 

我怎么能使用两个图像独立分散。在上述方法中,我可以只使用上img0.jpg

+0

现在我知道如何解决它,如果任何人都需要了解,请发表评论,我将上传代码。 –

+1

https://www.youtube.com/watch?v=6x1gUNoVB2I –

回答

3

散射特性在原始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()