Kivy重新装载图像

2024-09-28 05:21:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个简单的应用程序,它捕捉字符串并将其转换为二维码,但我无法让我的应用程序返回更新的qr图像。文件已更新,但即使我调用.reload(),结果显示的图像仍然是以前创建的。在

我相信,在启动过程中,应用程序是用当前存储的映像(一个来自上一次运行的映像)构建的,为什么.reload()不更新它呢?我用得对吗?在

旁注:有没有一种方法可以增加调试的详细程度,这样我不仅可以看到kivy的错误,还可以看到python错误?试着去做每件事:有点让人无法抗拒。在

class Note(Screen):
def reload_image(self):
        w = NoteCode().ids.image
        w.reload()
def qr_generator(self):
    note_input = self.note_input.text
    inn = pyqrcode.create(note_input)
    with open('qr.png','w') as inputfile:
        inn.png(inputfile,scale=8)
    self.reload_image()

以及相应的kv:

^{pr2}$

Tags: 字符串图像imageself应用程序inputpngdef
1条回答
网友
1楼 · 发布于 2024-09-28 05:21:14

对我来说,这行w = NoteCode().ids.image似乎有问题,因为您在其中创建了一个新实例,而没有获得现有的实例,因此即使您重新加载了某些内容,它也不会是布局中使用的NoteCode。你需要把它放进cd2{

self.app = App.get_running_app()
self.app.notecode = self

然后在Note.reload()中执行以下操作:

^{pr2}$

你也可以把应用程序放到init中,或者基本上放在任何你喜欢的地方,重要的是要得到正确的实例。在

相关问题 更多 >

    热门问题