gpt4 book ai didi

python - 如何让用户在kivy中选择文件作为背景图片?

转载 作者:太空宇宙 更新时间:2023-11-03 17:44:35 25 4
gpt4 key购买 nike

或者,如何使用python做到这一点,给它一个ID,并用kv语言将其设置为背景图像?我希望能够在图像顶部而不是黑屏上绘图,我在这里这样做:已编辑新问题:上传按钮不起作用,这是新代码

from random import random
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from kivy.graphics import Color, Line, Rectangle
from kivy.uix.filechooser import FileChooserListView, FileChooserIconView
from kivy.uix.floatlayout import FloatLayout

class MyPaintWidget(Widget):
def on_touch_down(self, touch):
color = (random(), random(), random())
with self.canvas:
Color(*color)
d = 30.
touch.ud['line'] = Line(points=(touch.x, touch.y))

def on_touch_move(self, touch):
touch.ud['line'].points += [touch.x, touch.y]




class MyPaintApp(App):

def build(self):
parent = Widget()
painter = MyPaintWidget()
Choose = Button(text = 'upload image')
parent.add_widget(painter)
parent.add_widget(Choose)


def chooose_file(obj):
fc = FileChooserIconView(title= 'upload image')
image_path = self.fc.selection[0]
image_name = file_path.split('/')[-1]

with self.canvas.before:
Rectangle(
size=self.size,
pos=self.pos,
source=image_name)
Choose.bind(on_release=choose_file)


return parent


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

最佳答案

这个怎么样:

如果您使用 kivy filechooser 让用户选择图像文件,那么您可以使用文件选择器的 .selection 属性来获取该文件的名称和/或路径。一旦你有了它,你就可以用它在布局等 Canvas 上你想要背景图像的地方设置矩形的源。

例如,要在 BoxLayout 上设置背景图像,请在继承自 BoxLayout 的类中:

fc = FileChooserIconView(title="Choose Image")
image_path = self.fc.selection[0]
image_name = file_path.split('/')[-1]

with self.canvas.before:
Rectangle(
size=self.size,
pos=self.pos,
source=image_name)

这当然是一个非常简单的例子,并没有真正考虑到你的代码的其余部分,但是通过 FileChooser 上的 kivy 文档你应该明白它。还值得注意的是,您可以在 kv 文件中执行此操作,也许更干净。

关于python - 如何让用户在kivy中选择文件作为背景图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30006162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com