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