python - 如何在 kivy 中使用 filechooser 选择文件夹
问题描述
这是我的python代码:
class Filechooser(Screen):
def select(self, *args):
try: self.label.text = args[1][0]
except: pass
def load(self,path):
with open(path) as stream:
global file_directory
file_directory=stream.read()
self.dismiss_popup()
当我选择一个文件夹并单击加载时,出现此错误:
File "main.py", line 19, in load
with open(path) as stream:
PermissionError: [Errno 13] Permission denied: 'C:\\movies'
它显示权限错误,我该怎么办
解决方案
我无法做你想做的事,但我发现你可以使用 tkinter 来完成这项任务。顺便说一句,我使用 StringProperty 来存储路径,我不知道这是否是正确的方法,我是 Kivy 的新手。
千伏
<BrowseApp>:
cols: 2
Button:
text: 'Browse...'
size_hint_x: 0.3
on_release: root.get_path()
Label:
id: pathLabel
text: root.pathVar
PY
# Import modules
import tkinter as tk
from tkinter import filedialog
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import *
from kivy.core.window import Window
Window.size = (600, 50)
class BrowseApp(GridLayout):
# variable to store path dir
pathVar = StringProperty("< Select a folder >")
# Function to select dir
def get_path(self):
root = tk.Tk()
root.withdraw()
pathVar = filedialog.askdirectory()
self.ids.pathLabel.text = pathVar # Change text of label
# ---- App Class
class loader(App):
def build(self):
return BrowseApp()
if __name__ == "__main__":
loader().run()
推荐阅读
- java - 如何从java中的另一个类访问对象?
- php - 使用客户满意度按优先级排序票证
- c# - API 控制器动态过滤 ASP .NET Core 和 EF Core 中的返回字段
- python - Python中字符串中的每个项目到列表中的项目
- amazon-web-services - 如何将使用 CSR 生成的私钥转换为 PEM 格式?
- python - python中的原始数字数据管理
- python - mongodb 比 sqlite 慢 4 倍,比 csv 慢 2 倍?
- javascript - 计算 DIV 的高度值作为 SCSS 的函数,并将其用作另一个 DIV 的高度
- amazon-web-services - CloudFormation 中的 AWS::CloudFront::OriginRequestPolicy 资源
- python - PYTHON 3:减去 2 个 HH:MM:SS 字符串数组成员