Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >kivymd object.__init__()只带一个参数(要初始化的实例)

kivymd object.__init__()只带一个参数(要初始化的实例)
EN

Stack Overflow用户
提问于 2020-09-19 08:48:35
回答 1查看 707关注 0票数 0

我正在尝试构建一个youtube视频下载程序,但是我被困住了,并且犯了一个奇怪的错误,我不知道怎么做?我认为我的代码看起来不错,但有些地方不对劲,我会尝试,但我无法弄清楚!

请帮帮我-

误差

代码语言:javascript
运行
AI代码解释
复制
    Traceback (most recent call last):
   File "/home/rohit/Desktop/Youtube_downloader/main.py", line 84, in <module>
     Itube().run()
   File "/home/rohit/Desktop/Youtube_downloader/main.py", line 38, in __init__
     self.file_manager = MDFileManager(
   File "/home/rohit/Desktop/Youtube_downloader/env/lib/python3.8/site-packages/kivymd/uix/filemanager.py", line 403, in __init__
     super().__init__(**kwargs)
   File "/home/rohit/Desktop/Youtube_downloader/env/lib/python3.8/site-packages/kivymd/theming.py", line 907, in __init__
     super().__init__(**kwargs)
   File "/home/rohit/Desktop/Youtube_downloader/env/lib/python3.8/site-packages/kivy/uix/floatlayout.py", line 65, in __init__
     super(FloatLayout, self).__init__(**kwargs)
   File "/home/rohit/Desktop/Youtube_downloader/env/lib/python3.8/site-packages/kivy/uix/layout.py", line 76, in __init__
     super(Layout, self).__init__(**kwargs)
   File "/home/rohit/Desktop/Youtube_downloader/env/lib/python3.8/site-packages/kivymd/uix/behaviors/backgroundcolorbehavior.py", line 150, in __init__
     super().__init__(**kwargs)
   File "/home/rohit/Desktop/Youtube_downloader/env/lib/python3.8/site-packages/kivy/uix/widget.py", line 350, in __init__
     super(Widget, self).__init__(**kwargs)
   File "kivy/_event.pyx", line 245, in kivy._event.EventDispatcher.__init__
 TypeError: object.__init__() takes exactly one argument (the instance to initialize)

main.py

代码语言:javascript
运行
AI代码解释
复制
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.core.window import Window
from kivymd.uix.filemanager import MDFileManager
from kivymd.toast import toast
from youtube_dl import kv


Window.size = (450, 740)



class HomeScreen(Screen):
    pass

class SigninScreen(Screen):
    pass




sm = ScreenManager()
sm.add_widget(HomeScreen(name='homescreen'))
sm.add_widget(SigninScreen(name='signinscreen'))





class Itube(MDApp):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        Window.bind(on_keyboard=self.events)

        self.manager_open = False
        self.file_manager = MDFileManager(
            exit_manager = self.exit_manager, 
            self_path = self.select_path,
            preview = True,
        )


    def build(self):
        return Builder.load_string(kv)


    def file_manager_open(self):
        self.file_manager.show('/')  # output manager to the screen
        self.manager_open = True

    def select_path(self, path):
        '''It will be called when you click on the file name
        or the catalog selection button.

        :type path: str;
        :param path: path to the selected directory or file;
        '''

        self.exit_manager()
        toast(path)

    def exit_manager(self, *args):
        '''Called when the user reaches the root of the directory tree.'''

        self.manager_open = False
        self.file_manager.close()

    def events(self, instance, keyboard, keycode, text, modifiers):
        '''Called when buttons are pressed on the mobile device.'''

        if keyboard in (1001, 27):
            if self.manager_open:
                self.file_manager.back()
        return True






if __name__ == "__main__":
    Itube().run()

youtube_dl.py

代码语言:javascript
运行
AI代码解释
复制
kv = """

ScreenManager:
    HomeScreen:
    SigninScreen:




<HomeScreen>:
    name: 'homescreen'



    MDBoxLayout:
        orientation: 'vertical'
        spacing: 20
        padding: 40


        MDTextFieldRound:
            hint_text: 'Url'
            multline: False
            normal_color: (1, 1, 1, 100)
            color_active: (232/255, 232/255, 232/255, 600)
            
        MDBoxLayout:
            orientation: 'horizontal'
            adaptive_size: True
            spacing: 22
            pos_hint: {'center_x': 0.5, 'center_y': .99}

            MDToolbar:
                title: 'FileManager'
                left_action_items: [['menu', lambda x: None]]
                elevation: 10

            MDRaisedButton:
                text: 'Import from computer'
                icon: "folder"
                on_release: app.file_manager_open()
            
            MDRaisedButton:
                text: 'Import from itube cloud'
    

    

        


<SigninScreen>:
    name: 'signinscreen'


"""

或者,您能解释一下构建大kivymd应用程序的最佳方法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-12-21 06:11:23

在self.file_manager中,您已经编写了self_path = self.select_path。这将是select_path = self.select_path。而且,我不知道preview=True有什么问题,也许是个bug。所以你的职能是:

代码语言:javascript
运行
AI代码解释
复制
def __init__(self, **kwargs):
    super().__init__(**kwargs)
    Window.bind(on_keyboard=self.events)
    self.manager_open = False
    self.file_manager = MDFileManager(
        exit_manager = self.exit_manager, 
        select_path = self.select_path,
    )
    self.file_manager.preview = True #Can try if it works
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63971206

复制
相关文章
访问列表中的值
#!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5, 6, 7 ] print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]
用户8442333
2021/05/27
5.9K0
Angular2 路由传值
在接收值得组件里面导入ActivatedRoute 路由设置页面传参 { path: 'view/:mid' , component: ViewComponent}, 父级页面路由跳转的实现 <div [routerLink]="['/email/view',mail.id]">页面跳转传值</div> 子页面的Component通过下面的方法可以获取到父页面路由传过来的参数<b>mail.id</b> // import { Component, OnInit } from '@ang
用户1437675
2018/08/20
8060
Angular2 中的指令
组件:一种带有模板的指令;使用component来装饰组件类 属性指令:改变元素的外观或行为,如NgClass,NgStyle;使用Directive来装饰指令类 结构指令:向DOM中添加或删除元素,如NgIf,NgFor;使用Directive来装饰指令类
用户1437675
2018/08/20
1.8K0
Angular2 组件(页面)之间如何传值
在Angular 2中,数据和事件变化检测从上到下发生从<b>父级到子级。</b>
用户1437675
2018/08/20
4K0
Angular2 组件(页面)之间如何传值
SpringBoot中自定义注解实现控制器访问次数限制
今天给大家介绍一下SpringBoot中如何自定义注解实现控制器访问次数限制。 在Web中最经常发生的就是利用恶性URL访问刷爆服务器之类的攻击,今天我就给大家介绍一下如何利用自定义注解实现这类攻击的
林老师带你学编程
2018/01/04
2.7K0
迭代器模式(控制访问集合中的元素)
现在我们需要思索,JDK是怎么做到这一切的?现在让我们先利用迭代器实现一个数组类型Array,这个类型需要支持添加、移除、遍历操作。
幺鹿
2018/08/21
1.4K0
迭代器模式(控制访问集合中的元素)
Android 中的属性动画 --- 2(插值器)
在上一篇文章中,我们使用 ValueAnimator 这个类来实现了操作 View 对象的 height 属性从而实现了动画形式的显示和隐藏 View 控件。我们知道 ValueAnimator 这个类只用于根据当前动画的完成度和按照一定的“规律”产生一系列有规律的数字,事实上,属性动画的核心部分也就是这个,我们可以不断获取 ValueAnimator 产生的数字用于操作 View 的属性从而完成动画。那么 ValueAnimator 按照什么“规律”来产生一系列的数字呢?其实这个规律就是插值器。我们在定义属性动画的时候,需要通过setDuring 方法来为属性动画指定完成这个动画的时间,那么插值器就是用不同的时间因子产生不同的值,说白了插值器就像是一个公式,根据输入来转换成对应的输出。不同的插值器下,每个单位时间所达到的变化值也是不一样的,如果说使用线性插值器,那么每个单位时间内变化的值都一样。这就好比在规定的时间内跑步一样,有些人一开始跑的快,后面跑的慢,有些人一开始跑得慢,后面跑得快,但是大家都能在规定的时间里面到达终点。插值器就相当于描述跑步速度的对象。 Android 属性动画框架给我们提供了一些插值器和其对应的变化曲线:
指点
2019/01/18
1.7K0
Android 中的属性动画 --- 2(插值器)
SpringBoot之读取配置文件中自定义的值
一般来说,我们会在配置文件中自定义一些自己需要的值,比如jwt的密匙,或者一些FTP配置等信息
彼岸舞
2021/01/21
2.4K0
Angular2 拦截器(页面请求修改Url+headers传值+获取服务器返回的错误信息)
1.我们首先定义一个服务 <b>HttpInterceptorService</b>
用户1437675
2018/08/20
3K0
Carson带你学Android:自定义动画神器-插值器与估值器(含实例教学)
设置方法1:在 动画效果的XML代码中设置插值器属性android:interpolator
Carson.Ho
2022/03/24
1.1K0
Carson带你学Android:自定义动画神器-插值器与估值器(含实例教学)
idea中Debug时计算自定义表达式的值
没有返回结果,使用ctrl+alt+v抽取变量,可以自动生成返回,记得补充末尾的分号.
玖柒的小窝
2021/09/14
6950
idea中Debug时计算自定义表达式的值
shell脚本 从自定义的值中随机抽取+不重复
日期:2018/6/12 介绍:从数组里随机抽一个,但不会重复,相比之下python比较好做出效果
陈不成i
2021/06/24
3.3K0
Angular2入门体验
好的工具往往使得开发应用更快更简单,而不是任何模块都手动开发。angualr cli就是一个支持 创建工程,添加文件,对各种任务如测试、打包、部署等迭代。 本文的目的就是基于TypeScript开发构建一个angualr应用,使用angualr cli可以选择工程的风格。 在本章的 末尾,你可以理解CLI的开发以及开发完整应用的样例。 也可以通过这个链接直接下载源码。 第一步,配置环境变量 在开始开发前,需要安装nodejs。 点击这个网址,Nodejs安装文件下载 在命令行中,执行: sudo npm i
用户1154259
2018/04/17
1.7K0
angular2 路由问题
Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'main' 这个问题的处理很简单,是路由的路径写错了, import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import {loginComponent} from './login/login.component'; impor
杭州前端工程师
2018/06/15
1.2K0
Angular2 之 Animations
Angular2的动画系统赋予了制作各种动画效果的能力,致力于构建出与原生CSS动画性能相同的动画。 Angular2的动画主要是和@Component结合在了一起。 animations元数据属性在定义@Component装饰。就像template元数据属性!这样就可以让动画逻辑与其应用代码紧紧集成在一起,这让动画可以更容易的出发与控制。 使用要点 Angular2的动画是使用<u>模型驱动</u>的方式在两个状态之间进行转换,是由状态和状态之间的转场效果所定义的。 动画被定义在@Compone
贺贺V5
2018/08/21
1.9K0
Angular2 之 Animations
D11-Android自定义控件之动画篇3-插值器与估值器
零、前言 估值器和插值器丰富了动画更新时的效果 为方便本案例演示使用了我的LogicCanvas绘图库--github地址,当然你也可以自己绘制 估值器:TypeEvaluator :该以什么方
张风捷特烈
2018/09/29
7550
D11-Android自定义控件之动画篇3-插值器与估值器
抛弃dict[key]的方式访问Python字典的值
如果key不存在,dkey会抛出一个KeyError类型的异常,这将导致python程序崩溃,这是非常令人烦恼的事情。
AIFEx
2023/10/04
2840
抛弃dict[key]的方式访问Python字典的值
Oracle 触发器中修改字段值
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53909715
用户1148526
2019/05/25
1.8K0
再谈属性动画——介绍以及自定义Interpolator插值器
属性动画中有一个重要的概念就是插值器——Interpolator,根据流失的时间因子计算得到属性因子。Android中默认的插值器是AccelerateDecelerateInterpolator,内置了很多插值器,本文将以一个例子介绍各种插值器的效果,以及如何自定义Interpolator。 话不多说,先看demo,如下视频
用户1108631
2019/08/17
1.9K0
在使用angular2中使用nodejs创建服务器,并成功获取参数
老是遇到很多坑等着自己去填. 首先创建服务器: 1.最好使用express,这个库有更多的api,方法:npm install express --save; 2. npm install @types/express --save; 安装nodemon 可以让服务器自动重启, 方法:npm install nodemon; 在启动服务器的时候用:nodemon build/...js; 这样服务器就算启动完成了. /** * Created by Administrator on 2017/5/16.
杭州前端工程师
2018/06/15
4.4K0

相似问题

没有“”angular2的值访问器

27

Angular2中的错误-没有值访问器'‘

13

从Angular2中的自定义验证器访问服务

35

原始异常:没有'‘- angular2的值访问器

10

Angular2:没有嵌套表单的值访问器

215
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档