第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

類型錯(cuò)誤:函數(shù)需要 1 個(gè)位置參數(shù),但 kivy python 給出了 2 個(gè)位置參數(shù)

類型錯(cuò)誤:函數(shù)需要 1 個(gè)位置參數(shù),但 kivy python 給出了 2 個(gè)位置參數(shù)

慕后森 2023-06-27 18:22:14
我嘗試在 self 之后添加實(shí)例,但仍然不起作用這是錯(cuò)誤消息File "kivy\_event.pyx", line 703, in kivy._event.EventDispatcher.dispatchFile "kivy\_event.pyx", line 1214, in kivy._event.EventObservers.dispatchFile "kivy\_event.pyx", line 1138, in kivy._event.EventObservers._dispatchTypeError: sss() takes 1 positional argument but 2 were given這是完整的 kivy python 代碼import kivyfrom kivy.uix.widget import Widgetfrom kivy.properties import ObjectPropertyfrom kivy.app import Appfrom kivy.uix.label import Labelfrom kivy.uix.gridlayout import GridLayoutfrom kivy.uix.textinput import TextInputfrom kivy.uix.button import Buttonfrom kivy.uix.screenmanager import ScreenManager, Screenclass 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()
查看完整描述

1 回答

?
米脂

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊

當(dāng)您單擊按鈕時(shí),它會(huì)使用一些信息執(zhí)行您的函數(shù)。在不同的 GUI 中它可以使用不同的信息。在某些 GUI 中,它可以是有關(guān)事件的信息,在其他 GUI 中,它可以是有關(guān)小部件的信息,等等。


Kivy發(fā)送有關(guān)單擊的小部件的信息,您必須接收它


def sss(self, widget):

如果您想更改現(xiàn)有Button按鈕,則不要?jiǎng)?chuàng)建新按鈕 - 如果您將其分配給同一變量,則不會(huì)更改現(xiàn)有按鈕。您必須刪除舊按鈕并使用添加新按鈕add_widget()


您已有按鈕,self.Rc1因此您可以執(zhí)行以下操作


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)

但更有趣的是,你也可以得到這個(gè)小部件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)

這樣您就可以通過不同的按鈕使用相同的功能

http://img1.sycdn.imooc.com//649ab87d0001da6606540503.jpg

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()


查看完整回答
反對(duì) 回復(fù) 2023-06-27
  • 1 回答
  • 0 關(guān)注
  • 293 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)