【问题标题】:How do you get filenames and save and display there names in labels. KivyMD Kivy Python您如何获取文件名并在标签中保存和显示名称。 KivyMD Kivy Python
【发布时间】:2021-08-15 11:49:00
【问题描述】:

我正在尝试在 Kivy Buttons 上显示文件名,但我想添加一个功能,这样当没有 txt 文件时,Buttons 不会显示,但 txt 文件越多,标签就越多。

我有一个系统,您可以在其中将文本保存到文件中并为文件指定标题,以便用户知道该文件是否存在。我目前不知道如何做到这一点。我的想法是,当您按下带有文件名的按钮时,例如“test”,它将显示 txt 文件的文本,但我不知道如何在按钮上显示 txt 文件的名称,并且可能没有txt 文件,因此您必须隐藏按钮。我正在使用 KivyMD,所以这些按钮会是首选。

这是显示按钮的页面截图:

希望python的高手能帮帮我。

更新:

    files_list = [os.path.abspath(x) for x in os.listdir()]
    for k in files_list:
        type = mimetypes.MimeTypes().guess_type(k)[0]
        if type == "text\plain":
            MainScreen.add_widget(Button(text=k))

【问题讨论】:

    标签: python python-3.x kivy kivy-language kivymd


    【解决方案1】:

    使用两个屏幕的方法。第一个屏幕显示按钮列表,第二个屏幕用于编辑文本。

    import mimetypes, os
    files_list = [os.path.abspath(x) for x in os.listdir()]
    for k in files_list:
        type = mimetypes.MimeTypes().guess_type(k)[0])
        if type == "text\plain":
            mylayout.add_widget(Button(text=k))
    

    这里mylayout 是一个kivy 布局,取决于您希望如何排列按钮。

    为了显示文本,第二个屏幕将包含一个标签。只需读取文本文件并将其分配给标签的text 属性即可。

    【讨论】:

    • 创建文件时,标签未创建,我将更新代码
    • @GClreland 对于实时创建标签,您需要运行一个单独的线程(比如每秒两次)来检查是否创建了新文件
    • 我该怎么做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多