Kivy,Python:更新文件上的标签

2024-04-19 10:46:53 发布

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

我正在尝试做一个非常简单的GUI,当一个文件被放到应用程序上时,它可以更新一个文本标签。你知道吗

到目前为止,我已经能够识别文件何时被删除,并在控制台上打印消息。不幸的是,现在我一直在试图更新标签(与信息“林肯公园”)到“三天宽限期”时,一个文件被删除,但我还没有使它。你知道吗

有人能帮我解决这个问题吗?你知道吗

主.py

#Se importan archivos necesarios de Kivy
from kivy.app import App
from kivy.config import Config
from kivy.uix.label import Label
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
from kivy.core.window import Window
from kivy.properties import StringProperty
import random

class MainLayout(FloatLayout):

    artistName = StringProperty()

    def __init__(self, **kwargs):
        super(MainLayout, self).__init__(**kwargs)
        self.artistName = "Linkin Park"

    def _on_file_drop(self):
        self.artistName = "Three Day Grace"
        print "File Dropped"

class MainApp(App):

    def build(self):
        self.title = "Shantazam"
        Window.bind(on_dropfile=self._on_file_drop)
        Window.size = (400,700)
        return MainLayout()

    def _on_file_drop(self, window, file_path):
        file_path = file_path.split("\\")
        fileToOpen = file_path[-2]+"\\"+file_path[-1]
        print(enter code herefileToOpen)
        MainLayout()._on_file_drop()
        return

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

主应用电压

 #:import utils kivy.utils


<MainLayout>:
    canvas:
        Color:
            rgb: utils.get_color_from_hex('#0088ff')

        Rectangle:
            pos: 0,0
            size: self.size

    Label:
        text: 'Shantazam'
        font_size: 72
        markup: True
        shorten: True
        ellipsis_options: {'color':(1,0.5,0.5,1),'underline':True}
        size_hint: (1, 0.17)
        pos_hint: {'x': 0 , 'y' : 0.7}
    Label:
        id: label1
        text: root.artistName

Tags: 文件pathfromimportselfsizeondef
1条回答
网友
1楼 · 发布于 2024-04-19 10:46:53

您只需要一个对MainLayout的引用,就可以访问artistName。如果您将App调整为:

class MainApp(App):

    def build(self):
        self.title = "Shantazam"
        Window.bind(on_dropfile=self._on_file_drop)
        Window.size = (400,700)
        self.mainLayout = MainLayout()
        return self.mainLayout

    def _on_file_drop(self, window, file_path):
        self.mainLayout.artistName = 'Three Day Grace'

我想会有用的。你知道吗

相关问题 更多 >