为什么在kivy python中有两个图像(image.reload())?

为什么在kivy python中有两个图像(image.reload())?,python,kivy,Python,Kivy,我有kivy projekt,我制作了一个图像,但在显示器上是2。为什么? 我想更新图像,只显示一个图像 这是我的代码: main.py import numpy as np import cv2 from PIL import Image as IMG from PIL import ImageDraw, ImageFont import random from kivy.app import App from kivy.uix.widget import Widget from kivy.

我有kivy projekt,我制作了一个图像,但在显示器上是2。为什么? 我想更新图像,只显示一个图像

这是我的代码:

main.py

import numpy as np
import cv2
from PIL import Image as IMG
from PIL import ImageDraw, ImageFont
import random

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.floatlayout import FloatLayout
from kivy.lang import Builder
from kivy.uix.stacklayout import StackLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.image import Image
from kivy.uix.slider import Slider
from kivy.uix.switch import Switch
from kivy.base import EventLoopBase
from kivy.clock import Clock
from functools import partial
from kivy.core.window import Window
Builder.load_file('kivy.kv')

def fotowrite(message):
    image = IMG.open('blue.jpg')

    font = ImageFont.truetype('Roboto.ttf', size=20) 
    draw = ImageDraw.Draw(image)
    #message = """    """ #datat of write
    color = 'rgb(0, 255, 0)' #rgb color
    draw.text((0, 0), message, fill=color, font=font) #erite
    image.save('blue2.jpg') 



class AlapWidget(StackLayout):
    pass

class GUIApp(App):
    def build (self):
        self.load_kv("kivy.kv")
        return AlapWidget()


def AppLoop(*args):
    win_ref = Window.get_parent_window().children[0]
    print('AppLoop')
    i=0
    i=random.random()
    fotowrite("value of i: "+str(i)) #here write to image, and save in HDD
    img = cv2.imread('blue2.jpg',cv2.IMREAD_UNCHANGED) 
    App.get_running_app().root.ids.imgm.reload()   
val1=None
Clock.schedule_interval(partial(AppLoop, 'val1'), 1)

GUIApp().run()
千伏

<AlapWidget>:
    BoxLayout:                  
        orientation:'vertical'
        size_hint:0.55,0.45
        Image:
            id:imgm
            nocache:True
            source:'blue2.jpg' #load in disk
            size: self.texture_size
            allow_stretch:True
            keep_ratio:1
:
盒子布局:
方向:'垂直'
尺寸提示:0.55,0.45
图片:
id:imgm
诺卡奇:是的
来源:'blue2.jpg'#加载到磁盘中
大小:self.texture\u大小
允许拉伸:真
比例:1
有什么问题? 为什么要重新加载第二个

对不起,我会说一点英语,而且我是GUI的初学者


谢谢

问题是您加载了两次
kivy.kv
文件。一旦排队:

Builder.load_file('kivy.kv')
self.load_kv("kivy.kv")
再次在您的
GUIApp
行中:

Builder.load_file('kivy.kv')
self.load_kv("kivy.kv")
kv
文件只能加载一次。
App
方法(
load_kv()
)通常由
App
自动调用,默认情况下,它会查找名称基于
App
名称的
kv
文件。因此,在您的情况下,如果您将
kivy.kv
的名称更改为
gui.kv
,那么它将自动加载,您可以消除这两个
kv
加载调用。如果您希望保留名称
kivy.kv
,那么只需删除
self.load\u-kv(“kivy.kv”)
调用即可