Python 如何在没有功能的情况下访问Kivy上的复选框状态?

Python 如何在没有功能的情况下访问Kivy上的复选框状态?,python,python-3.x,kivy,Python,Python 3.x,Kivy,我必须访问Kivy(Python)上的复选框状态,而不创建函数(正如Kivy文档中建议的那样) 我需要类似“if checkbox.active==True:do something”的内容 可能吗 Kivy的文档建议(带有功能): ========================================== 我的代码的开头: ========================== ... 我需要复选框状态的位置: ================================= 下面的

我必须访问Kivy(Python)上的复选框状态,而不创建函数(正如Kivy文档中建议的那样)

我需要类似“if checkbox.active==True:do something”的内容

可能吗

Kivy的文档建议(带有功能): ========================================== 我的代码的开头: ========================== ... 我需要复选框状态的位置: =================================
下面的工作示例说明如何访问函数中的
复选框的状态

例子 main.py 示例2-使用kv文件 以下代码段使用kv文件,所有小部件都添加到Python脚本中

片段-kv
CheckBox
是一个特定的两状态按钮,可以选中 (
active
的值为True)或未选中(
active
的值为 错误)

指示开关是激活还是未激活

active
为a,默认为False


下面的工作示例说明如何访问函数中的
复选框的状态

例子 main.py 示例2-使用kv文件 以下代码段使用kv文件,所有小部件都添加到Python脚本中

片段-kv
CheckBox
是一个特定的两状态按钮,可以选中 (
active
的值为True)或未选中(
active
的值为 错误)

指示开关是激活还是未激活

active
为a,默认为False


我认为您应该添加一个变量,该变量将在复选框更改时更改。我和kivy不一样,但我的建议可能会有所帮助。我认为您应该添加一个变量,每当复选框被更改时,该变量都会被更改。我和kivy不太一样,但是当我尝试运行“self.ids.checkbox.active”时,我的建议可能会有所帮助,它会给我以下错误:接受1个位置参数,但给出了2个位置参数。你是如何调用方法
设置批准评级的?
?对我来说,在“self”之后似乎缺少了一些东西。。。我就是这样尝试的:def checkbox_status_2(self):#if self.check_rates.active:if self.ids.check_rates.active:print('active')请参阅更新的帖子,并附上一个工作示例如果我在self(def set_approval_rating(self,instance))之后使用“instance”,它将停止要求另一个参数。但它也不起作用。当我尝试运行“self.ids.checkbox.active”时,它给了我以下错误:接受1个位置参数,但给出了2个位置参数。您是如何调用方法
设置批准评级的?
?在我看来,它在“self”之后缺少了一些内容。。。我就是这样尝试的:def checkbox_status_2(self):#if self.check_rates.active:if self.ids.check_rates.active:print('active')请参阅更新的帖子,并附上一个工作示例如果我在self(def set_approval_rating(self,instance))之后使用“instance”,它将停止要求另一个参数。但它也不起作用。
from kivy.uix.checkbox import CheckBox

# ...

def on_checkbox_active(checkbox, value):
    if value:
        print('The checkbox', checkbox, 'is active')
    else:
        print('The checkbox', checkbox, 'is inactive')

checkbox = CheckBox()
checkbox.bind(active=on_checkbox_active)
class MainScreen(Screen):
    def __init__(self, **args):
        Screen.__init__(self, **args)

        self.label_1 = Label(text...)
        self.label_2 = Label(text...)

        self.add_widget(self.label_1)
        self.add_widget(self.label_2)


    def on_checkbox_active(checkbox, value):
        if value:
            print('The checkbox', check_invoices, 'is active')
        else:
            print('The checkbox', check_invoices, 'is inactive')
if last_approval_SUM == 5:
    last_approval_x = 1
else:
    if CHECKBOX_STATUS == True:
        last_approval_x = 0
    else:
        last_approval_x = 1
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder


Builder.load_string("""
<MainScreen>:
    BoxLayout:
        orientation: 'vertical'
        Label:
            id: label_1
            text: "Label 1's text"
        Label:
            id: label_2
            text: "Label 2's text"
        CheckBox:
            id: checkbox
        Button:
            text: 'Set approval rating'
            on_release: root.set_approval_rating()
""")


last_approval_SUM = 0


class MainScreen(Screen):

    def set_approval_rating(self):

        if last_approval_SUM == 5:
            last_approval_x = 1
        else:
            if self.ids.checkbox.active:
                last_approval_x = 0
            else:
                last_approval_x = 1
        print(f"\nlast_approval_x={last_approval_x}")


class TestApp(App):

    def build(self):
        return MainScreen()


if __name__ == "__main__":
    TestApp().run()
class MainScreen(Screen):
    def __init__(self, **args):
        Screen.__init__(self, **args)

        self.label_1 = Label(text...)
        self.label_2 = Label(text...)
        self.checkbox = CheckBox()

        self.add_widget(self.label_1)
        self.add_widget(self.label_2)

    def set_approval_rating(self):
        if last_approval_SUM == 5:
            last_approval_x = 1
        elif self.checkbox.active:    # checkbox checked i.e. True
            last_approval_x = 0
        else:
            last_approval_x = 1
<MainScreen>:
    BoxLayout:
        orientation: 'vertical'
        Label:
            id: label_1
            text: "Label 1's text"
        Label:
            id: label_2
            text: "Label 2's text"
        CheckBox:
            id: checkbox
class MainScreen(Screen):

    def set_approval_rating(self):
        if last_approval_SUM == 5:
            last_approval_x = 1
        elif self.ids.checkbox.active:    # checkbox checked i.e. True
            last_approval_x = 0
        else:
            last_approval_x = 1
active