<p>还没有人回答我的问题,但我仍在推进我的项目,正如我之前提到的,我修改了代码以使用更多的.kv文件,现在我有了主屏幕和辅助屏幕。你知道吗</p>
<p>该项目是关于一个年鉴,12个月,每个月30天,其想法是,用户有一个全球视野的后续行动,他的活动一年在一个单一的看法。你知道吗</p>
<p>在屏幕“main”中,日历的每个按钮代表一天(365个按钮),每个按钮指向另一个屏幕(1、2、3、…、365),其中有四个“复选框”,显示用字母(R、F、C、T)标识的活动,可以按任何顺序和数量单独或分组选择,例如:R,RC、RFT、RFCT。你知道吗</p>
<p>我们还有三个按钮(Accept,Clean,Return);我用“Accept”将选中的“CheckBox”发送到屏幕“main”,然后用“Return”按钮返回到“main”,我可以看到我所做选择的数据;用“Clean”按钮我可以删除之前所做的选择,当我按“Back”按钮时,我会发现那天没有任何数据,完全干净,如果我想我可以再次进入,并作出不同的选择。你知道吗</p>
<p>缺少的是,我已经在主屏幕或“main”中进行了选择,我可以将其保存在备份中,这样当我关闭应用程序时,数据不会被删除,这样当我再次打开它时,它们将在我使用应用程序期间所选的每一天出现。你知道吗</p>
<p>另一方面,缺少的是,在选定选项的日子里,字母的颜色根据复选框的每个选择而定。你知道吗</p>
<p>接下来,我将分享我已经意识到的代码.py和.kv,并且我已经对它们进行了注释,以便您可以在您的PC中验证它,以防有人想要找到可能的解决方案;我必须指出,接下来的代码的最小表达式仅为一个月(一月)和四天(1、2、3、4),因为整个一年都是很多代码直接发布在这个网站上。你知道吗</p>
<p>在我向您展示最小化的代码之前,我给您留下了当您有一整年的时间来了解项目时的图像:</p>
<p><a href="https://i.stack.imgur.com/aFDcw.jpg" rel="nofollow noreferrer">Screen "main" with 365 buttons, that is, 365 days, of which only the first four are directed to the second screen, for the minimized example that I expose.</a></p>
<p><a href="https://i.stack.imgur.com/TT57U.jpg" rel="nofollow noreferrer">Screen "1" with the four options to select, you can see the buttons " Aceptar ", " Limpiar " and " Volver ".</a></p>
<p><a href="https://i.stack.imgur.com/PBUYa.jpg" rel="nofollow noreferrer">Screen "1" with the four options selected and other three examples.</a></p>
<p><a href="https://i.stack.imgur.com/Uy6tc.jpg" rel="nofollow noreferrer">Screen "main" with the selections made shown on days 1, 2, 3 and 4.</a></p>
<p>非常感谢。你知道吗</p>
<p>我用的是kivy ver。1.11.1概述</p>
<p>代码.py</p>
<pre><code>from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
from kivy.properties import StringProperty
from kivy.uix.checkbox import CheckBox
Builder.load_file('anuario Ver minima.kv')
class Anuario(FloatLayout):
def __init__(self, **kwargs):
super(Anuario, self).__init__(**kwargs)
def reset_checkbox_1(self):
for child in reversed(self.ids.grid_1.children):
if isinstance(child, CheckBox):
child.active = False
def limpiar_1(self, text):
self.ids['button_1'].text = ""
self.gender1 = ''
self.gender2 = ''
self.gender3 = ''
self.gender4 = ''
def reset_checkbox_2(self):
for child in reversed(self.ids.grid_2.children):
if isinstance(child, CheckBox):
child.active = False
def limpiar_2(self, text):
self.ids['button_2'].text = ""
self.gender5 = ''
self.gender6 = ''
self.gender7 = ''
self.gender8 = ''
def reset_checkbox_3(self):
for child in reversed(self.ids.grid_3.children):
if isinstance(child, CheckBox):
child.active = False
def limpiar_3(self, text):
self.ids['button_3'].text = ""
self.gender9 = ''
self.gender10 = ''
self.gender11 = ''
self.gender12 = ''
def reset_checkbox_4(self):
for child in reversed(self.ids.grid_4.children):
if isinstance(child, CheckBox):
child.active = False
def limpiar_4(self, text):
self.ids['button_4'].text = ""
self.gender13 = ''
self.gender14 = ''
self.gender15 = ''
self.gender16 = ''
gender1 = StringProperty("")
gender2 = StringProperty("")
gender3 = StringProperty("")
gender4 = StringProperty("")
gender5 = StringProperty("")
gender6 = StringProperty("")
gender7 = StringProperty("")
gender8 = StringProperty("")
gender9 = StringProperty("")
gender10 = StringProperty("")
gender11 = StringProperty("")
gender12 = StringProperty("")
gender13 = StringProperty("")
gender14 = StringProperty("")
gender15 = StringProperty("")
gender16 = StringProperty("")
def insert_data(self):
self.ids['button_1'].text = format(self.gender1)+(self.gender2)+(self.gender3)+(self.gender4)
self.ids['button_2'].text = format(self.gender5)+(self.gender6)+(self.gender7)+(self.gender8)
self.ids['button_3'].text = format(self.gender9)+(self.gender10)+(self.gender11)+(self.gender12)
self.ids['button_4'].text = format(self.gender13)+(self.gender14)+(self.gender15)+(self.gender16)
class MyAppApp(App):
def build(self):
return Anuario()
if __name__ == '__main__':
MyAppApp().run()
</code></pre>
<p>代码kv</p>
<pre><code><Anuario>:
ScreenManager:
id: manager
size_hint: 1, .9999
Screen:
name: 'main'
BoxLayout:
padding: 1
spacing: 1
orientation: 'vertical'
size_hint: 0.075, 0.947 #ancho y alto bloque meses
pos_hint:{'center_x':.04,'y':.00} #alineación izquierda bloque meses
canvas:
Color:
rgb: 1, 0, 0
Rectangle:
size: self.size
pos: self.pos
Button:
text:"Enero"
font_size:15
halign:'left'
color:1,.5,0,1
BoxLayout:
canvas:
Color:
rgb: 0, 1, 0
Rectangle:
size: self.size
pos: self.pos
orientation: "horizontal"
size_hint: 0.92, 0.05 #ancho y alto bloque encabezado 31 días
pos_hint:{'center_x':.540,'y':.95} #alineación izquierda bloque encabezado 31 días
Button:
text:"1"
font_size:20
size_hint: .12, 0.99
halign:'left'
color:1,.5,0,1
pos_hint:{'center_x':.06,'y':.01}
Button:
text:"2"
font_size:20
size_hint: .12, 0.99
halign:'left'
color:1,.5,0,1
pos_hint:{'center_x':.06,'y':.01}
Button:
text:"3"
font_size:20
size_hint: .12, 0.99
halign:'left'
color:1,.5,0,1
pos_hint:{'center_x':.06,'y':.01}
Button:
text:"4"
font_size:20
size_hint: .12, 0.99
halign:'left'
color:1,.5,0,1
pos_hint:{'center_x':.06,'y':.01}
BoxLayout:
padding: 1
spacing: 1
orientation: "vertical"
size_hint: 0.92, 0.948 #ancho y alto bloque días
pos_hint:{'center_x':.540,'y':0.0} #alineación izquierda bloque días
canvas:
Color:
rgb: 0, 0, 1
Rectangle:
size: self.size
pos: self.pos
GridLayout:
size:self.size
rows: 12
cols: 31
Button:
id: button_1
text: ""
font_size:14
on_press: root.ids.manager.current = '1'
Button:
id: button_2
text: ""
font_size:14
on_press: root.ids.manager.current = '2'
Button:
id: button_3
text: ""
font_size:14
on_press: root.ids.manager.current = '3'
Button:
id: button_4
text: ""
font_size:14
on_press: root.ids.manager.current = '4'
Screen:
name: '1'
on_leave: root.reset_checkbox_1()
BoxLayout:
padding: 1
spacing: 1
orientation: "vertical"
size_hint: 0.55, 0.55 #ancho y alto screen de seleción
pos_hint:{'center_x':.50,'y':.30} #alineación izquierda screen de seleción
canvas:
Color:
rgb: 0, 0, .2 #color fondo del screen de selección
Rectangle:
size: self.size
pos: self.pos
GridLayout:
id: grid_1
size:self.size
cols: 2
size_hint:.9, .99
padding : 100,20
spacing: 20, 20
row_default_height: '10dp'
Label:
text: "R"
color:1,0,0,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
id : chk
text: "R"
on_active:
root.gender1 = self.text
Label:
text: 'F'
color:1,1,0,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
text: "F"
on_active:
root.gender2 = self.text
Label:
text: 'C'
color:0,1,0,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
text: "C"
on_active:
root.gender3 = self.text
Label:
text: 'T'
color:0,0,1,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
text: "T"
on_active:
root.gender4 = self.text
Button:
id: Button1_Aceptar
text: 'Aceptar'
on_press: root.insert_data()
Button:
id: Button1_Limpiar
text: 'Limpiar'
on_press: root.limpiar_1(button_1.text)
BoxLayout:
orientation: "vertical"
Button:
size_hint: 1.5, 0.99
pos_hint:{'center_x':1.06,'y':.00}
text: 'Volver'
on_press: root.ids.manager.current = 'main'
Screen:
name: '2'
on_leave: root.reset_checkbox_2()
BoxLayout:
padding: 1
spacing: 1
orientation: "vertical"
size_hint: 0.55, 0.55 #ancho y alto screen de seleción
pos_hint:{'center_x':.50,'y':.30} #alineación izquierda screen de seleción
canvas:
Color:
rgb: 0, 0, .2 #color fondo del screen de selección
Rectangle:
size: self.size
pos: self.pos
GridLayout:
id: grid_2
size:self.size
cols: 2
size_hint:.9, .99
padding : 100,20
spacing: 20, 20
row_default_height: '10dp'
Label:
text: "R"
color:1,0,0,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
id : chk
text: "R"
on_active:
root.gender5 = self.text
Label:
text: 'F'
color:1,1,0,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
text: "F"
on_active:
root.gender6 = self.text
Label:
text: 'C'
color:0,1,0,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
text: "C"
on_active:
root.gender7 = self.text
Label:
text: 'T'
color:0,0,1,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
text: "T"
on_active:
root.gender8 = self.text
Button:
id: Button2_Aceptar
text: 'Aceptar'
on_press: root.insert_data()
Button:
id: Button2_Limpiar
text: 'Limpiar'
on_press: root.limpiar_2(button_2.text)
BoxLayout:
orientation: "vertical"
Button:
size_hint: 1.5, 0.99
pos_hint:{'center_x':1.06,'y':.00}
text: 'Volver'
on_press: root.ids.manager.current = 'main'
Screen:
name: '3'
on_leave: root.reset_checkbox_3()
BoxLayout:
padding: 1
spacing: 1
orientation: "vertical"
size_hint: 0.55, 0.55 #ancho y alto screen de seleción
pos_hint:{'center_x':.50,'y':.30} #alineación izquierda screen de seleción
canvas:
Color:
rgb: 0, 0, .2 #color fondo del screen de selección
Rectangle:
size: self.size
pos: self.pos
GridLayout:
id: grid_3
size:self.size
cols: 2
size_hint:.9, .99
padding : 100,20
spacing: 20, 20
row_default_height: '10dp'
Label:
text: "R"
color:1,0,0,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
id : chk
text: "R"
on_active:
root.gender9 = self.text
Label:
text: 'F'
color:1,1,0,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
text: "F"
on_active:
root.gender10 = self.text
Label:
text: 'C'
color:0,1,0,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
text: "C"
on_active:
root.gender11 = self.text
Label:
text: 'T'
color:0,0,1,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
text: "T"
on_active:
root.gender12 = self.text
Button:
id: Button3_Aceptar
text: 'Aceptar'
on_press: root.insert_data()
Button:
id: Button3_Limpiar
text: 'Limpiar'
on_press: root.limpiar_3(button_3.text)
BoxLayout:
orientation: "vertical"
Button:
size_hint: 1.5, 0.99
pos_hint:{'center_x':1.06,'y':.00}
text: 'Volver'
on_press: root.ids.manager.current = 'main'
Screen:
name: '4'
on_leave: root.reset_checkbox_4()
BoxLayout:
padding: 1
spacing: 1
orientation: "vertical"
size_hint: 0.55, 0.55 #ancho y alto screen de seleción
pos_hint:{'center_x':.50,'y':.30} #alineación izquierda screen de seleción
canvas:
Color:
rgb: 0, 0, .2 #color fondo del screen de selección
Rectangle:
size: self.size
pos: self.pos
GridLayout:
id: grid_4
size:self.size
cols: 2
size_hint:.9, .99
padding : 100,20
spacing: 20, 20
row_default_height: '10dp'
Label:
text: "R"
color:1,0,0,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
id : chk
text: "R"
on_active:
root.gender13 = self.text
Label:
text: 'F'
color:1,1,0,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
text: "F"
on_active:
root.gender14 = self.text
Label:
text: 'C'
color:0,1,0,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
text: "C"
on_active:
root.gender15 = self.text
Label:
text: 'T'
color:0,0,1,1
text_size: self.size
halign:'center'
valign: 'middle'
CheckBox:
text: "T"
on_active:
root.gender16 = self.text
Button:
id: Button4_Aceptar
text: 'Aceptar'
on_press: root.insert_data()
Button:
id: Button4_Limpiar
text: 'Limpiar'
on_press: root.limpiar_4(button_4.text)
BoxLayout:
orientation: "vertical"
Button:
size_hint: 1.5, 0.99
pos_hint:{'center_x':1.06,'y':.00}
text: 'Volver'
on_press: root.ids.manager.current = 'main'
</code></pre>