从文件对话框加载图像有什么建议吗?

时间:2019-01-02 20:45:11

标签: python kivy kivy-language

我正在为我的应用程序构建GUI,并且试图从文件对话框中加载图像。 有人有什么建议吗?这是我的第一个Kivy应用程序,有时我无法完全理解文档。我已经尝试了多种方法,但最好的结果是屏幕左下方的图像。

我已经尝试过Placing an image in the middle of the label in Kivy的解决方案,但这并不能解决我的问题。

我的.kv文件的一部分:

<RunDemoScreen>:
    GridLayout:
        rows: 3
        cols: 2
        Button:
            text:"Test"


        Button:
            text:"File"
            on_press: root.file_dialog()

        Button:
            text: 'Back'
            on_release: root.manager.current = 'menu'

我的python代码的一部分:

class RunDemoScreen(Screen):

    def file_dialog(self):
        Tk().withdraw()
        self.filename = askopenfilename()
        print(self.filename)

此代码中的所有内容都可以正常工作。

1 个答案:

答案 0 :(得分:0)

您需要创建一个图像小部件,然后使用您要为其分配的ID将图像的源更改为self.filename变量

.kv中的

Image:
    id: imageWidget
    source: ''
    opacity: 0 # to make it completely invisible till your add a source file

.py中的

def file_dialog(self):
    Tk().withdraw()
    self.filename = askopenfilename()
    imageWid = self.ids['imageWidget']
    imageWid.source = self.filename
    imageWid.opacity= 1 # to make it visible