TypeError:函数接受1个位置参数,但给了2个kivy python

菊美井

我试图在自我之后添加实例,但仍然无法正常工作

这是错误消息

File "kivy\_event.pyx", line 703, in kivy._event.EventDispatcher.dispatch

File "kivy\_event.pyx", line 1214, in kivy._event.EventObservers.dispatch

File "kivy\_event.pyx", line 1138, in kivy._event.EventObservers._dispatch

TypeError: sss() takes 1 positional argument but 2 were given

这是完整的kivy python代码

import kivy

from kivy.uix.widget import Widget

from kivy.properties import ObjectProperty

from kivy.app import App

from kivy.uix.label import Label

from kivy.uix.gridlayout import GridLayout

from kivy.uix.textinput import TextInput

from kivy.uix.button import Button

from kivy.uix.screenmanager import ScreenManager, Screen



class Touch(Widget):

    def __init__(self, **kwargs):

        super(Touch, self).__init__(**kwargs)

        self.cols = 1

        self.Rc1 = Button(text="Submit", font_size=40)

        self.Rc1.bind(on_press=self.sss)

        self.add_widget(self.Rc1)


    def sss(self):

        self.Rc1 = Button(text="Push Me !",

                          font_size="20sp",

                          background_color=[1, 0, 0, 1],

                          color=(1, 1, 1, 1),

                          size=(32, 32),

                          size_hint=(.2, .2),

                          pos=(300, 250))

class MyApp(App):

    def build(self):

        return Touch()


if __name__ == "__main__":

    MyApp().run()
简单

当您单击按钮时,它将使用一些信息执行您的功能。在不同的GUI中,它可以使用不同的信息。在某些GUI中,它可以是有关事件的信息,在其他GUI中,可以是有关小部件的信息,等等。

Kivy 发送有关单击的小部件的信息,您必须接收它

def sss(self, widget):

如果要更改现有Button按钮,则不要创建新按钮-如果将其赋给相同的变量,它将不会更改现有按钮。您将必须使用以下命令删除旧按钮并添加新按钮add_widget()

您已有按钮,self.Rc1可以这样做

def sss(self, widget):
    self.Rc1.text = "Push Me !"
    self.Rc1.font_size = "20sp"
    self.Rc1.background_color = [1, 0, 0, 1]
    self.Rc1.color = (1, 1, 1, 1)
    self.Rc1.size = (32, 32)
    self.Rc1.size_hint = (.2, .2)
    self.Rc1.pos = (300, 250)

但更有趣的是,您还获得了此小部件sss(self, widget):,您可以执行

def change_button(self, widget):
    widget.text = "Push Me !"
    widget.font_size = "20sp"
    widget.background_color = [1, 0, 0, 1]
    widget.color = (1, 1, 1, 1)
    widget.size = (32, 32)
    widget.size_hint = (.2, .2)
    widget.pos = (300, 250)

这样,您可以通过不同的按钮使用相同的功能

在此处输入图片说明

import kivy
from kivy.uix.widget import Widget
from kivy.app import App
from kivy.uix.button import Button


class Touch(Widget):

    def __init__(self, **kwargs):
        super(Touch, self).__init__(**kwargs)
        
        #self.all_buttons = []
        
        for row in range(10):
            for col in range(10):
                x = col * 100
                y = row * 100
                button = Button(text=f"{row},{col}", pos = (x, y))
                button.bind(on_press=self.change_button)
                
                self.add_widget(button)
                
                #self.all_buttons.append(button)

    def change_button(self, widget):
        if widget.background_color == [1,1,1,1]:
            widget.background_color = [1, 0, 0, 1]
        else:
            widget.background_color = [1, 1, 1, 1]


class MyApp(App):

    def build(self):
        return Touch()

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TypeError:__init __()接受1个位置参数,但给出了2个(使用Pytesseract的Python多处理)

来自分类Dev

PYTHON:TypeError:DriverSpeed()接受0个位置参数,但给定1

来自分类Dev

Python / Django:as_view()接受1个位置参数,但给出了2个

来自分类Dev

Python:函数采用1个位置参数,但给出了2个,如何?

来自分类Dev

Python:函数采用1个位置参数,但给出了2个,如何?

来自分类Dev

python ,1 个位置参数,但给出了 2 个

来自分类Dev

我使用python创建了一个简单的键盘记录程序,但显示“ TypeError:write_file()接受0个位置参数,但给出了1个”

来自分类Dev

Python:__init __()接受2个位置参数,但给出了3个

来自分类Dev

Python-peewee接受2个位置参数,但给出了3个

来自分类Dev

Python函数正好接受2个参数(给定1个)

来自分类Dev

send_email() 接受 1 个位置参数,但给出了 3 个 - Django Python

来自分类Dev

这里抛出了TypeError异常:init()接受2个位置参数,但使用Selenium和Python的显式等待给出3个

来自分类Dev

Python / MySQL TypeError:execute()需要2到4个位置参数,但给出了5个

来自分类Dev

如何修复 Python 中的“TypeError: MOVE() 需要 0 个位置参数,但给出了 1 个”

来自分类Dev

python需要1个位置参数,但给出了2个

来自分类Dev

python中的多处理错误“需要1个位置参数,但给出了2个”

来自分类Dev

python super :TypeError: __init__() 需要 2 个位置参数,但给出了 3 个

来自分类Dev

Python TypeError:derivative_circ() 需要 2 个位置参数,但给出了 6 个

来自分类Dev

TypeError: __init__() 需要 2 个位置参数,但 Python 3 给出了 3 个?

来自分类Dev

Python:TypeError:__init __()恰好接受2个参数(给定1个)

来自分类Dev

python恰好接受1个参数(给定2个)

来自分类Dev

python接受1个参数(给定2个)

来自分类Dev

TypeError:init_animals()接受1个位置参数,但给出了2个

来自分类Dev

TypeError:quit()接受1个位置参数,但给出了2个(键盘绑定)

来自分类Dev

TypeError:as_view()接受1个位置参数,但给出了2个

来自分类Dev

Money和TypeError:__init __()接受1到2个位置参数,但给出了3个

来自分类Dev

TypeError:login()接受1个位置参数,但给出了2个

来自分类Dev

TypeError:__init __()接受1个位置参数,但给了2个discord.py

来自分类Dev

PyTorch-TypeError:forward()接受1个位置参数,但给出了2个

Related 相关文章

  1. 1

    TypeError:__init __()接受1个位置参数,但给出了2个(使用Pytesseract的Python多处理)

  2. 2

    PYTHON:TypeError:DriverSpeed()接受0个位置参数,但给定1

  3. 3

    Python / Django:as_view()接受1个位置参数,但给出了2个

  4. 4

    Python:函数采用1个位置参数,但给出了2个,如何?

  5. 5

    Python:函数采用1个位置参数,但给出了2个,如何?

  6. 6

    python ,1 个位置参数,但给出了 2 个

  7. 7

    我使用python创建了一个简单的键盘记录程序,但显示“ TypeError:write_file()接受0个位置参数,但给出了1个”

  8. 8

    Python:__init __()接受2个位置参数,但给出了3个

  9. 9

    Python-peewee接受2个位置参数,但给出了3个

  10. 10

    Python函数正好接受2个参数(给定1个)

  11. 11

    send_email() 接受 1 个位置参数,但给出了 3 个 - Django Python

  12. 12

    这里抛出了TypeError异常:init()接受2个位置参数,但使用Selenium和Python的显式等待给出3个

  13. 13

    Python / MySQL TypeError:execute()需要2到4个位置参数,但给出了5个

  14. 14

    如何修复 Python 中的“TypeError: MOVE() 需要 0 个位置参数,但给出了 1 个”

  15. 15

    python需要1个位置参数,但给出了2个

  16. 16

    python中的多处理错误“需要1个位置参数,但给出了2个”

  17. 17

    python super :TypeError: __init__() 需要 2 个位置参数,但给出了 3 个

  18. 18

    Python TypeError:derivative_circ() 需要 2 个位置参数,但给出了 6 个

  19. 19

    TypeError: __init__() 需要 2 个位置参数,但 Python 3 给出了 3 个?

  20. 20

    Python:TypeError:__init __()恰好接受2个参数(给定1个)

  21. 21

    python恰好接受1个参数(给定2个)

  22. 22

    python接受1个参数(给定2个)

  23. 23

    TypeError:init_animals()接受1个位置参数,但给出了2个

  24. 24

    TypeError:quit()接受1个位置参数,但给出了2个(键盘绑定)

  25. 25

    TypeError:as_view()接受1个位置参数,但给出了2个

  26. 26

    Money和TypeError:__init __()接受1到2个位置参数,但给出了3个

  27. 27

    TypeError:login()接受1个位置参数,但给出了2个

  28. 28

    TypeError:__init __()接受1个位置参数,但给了2个discord.py

  29. 29

    PyTorch-TypeError:forward()接受1个位置参数,但给出了2个

热门标签

归档