为什么在kivy python中有两个图像(image.reload())?
我有kivy projekt,我制作了一个图像,但在显示器上是2。为什么? 我想更新图像,只显示一个图像 这是我的代码: main.py为什么在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.
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”)
调用即可