将代码kivy.py转录为kivy.py-.kv(TextCheckBox)

时间:2019-09-23 09:09:35

标签: python kivy

我试图将代码.py转录为.py-.kv,但尝试失败,我最大的收获是看屏幕和组件,但没有执行我所需的基本功能。我已经在互联网上搜索了数周,但发现对我没有帮助,感谢您对将代码投入使用的支持。

原始代码来自此网站(代码#7“复选框列表”的示例):

https://www.reddit.com/r/kivy/wiki/snippets#wiki_checkbox_list

在控件中显示的是带有功能“ on_press”的四个“ TextCheckBox”:

“请选择。”

“您选择了:软件”(如果您仅选择一项)

“您选择了:软件,硬件”(如果同时选择了两个项目)

我澄清说,Ninja IDE不接受.py和.kv中使用的原始代码的“活动”一词,因此我不得不将其更改为“ on_press”一词。

我只设法看到了Widget,我可以在两个TextCheckBox中进行选择,但是无法显示所选内容。

Código.py:

from kivy.app import App
from kivy.lang import Builder
from kivy.clock import Clock
from kivy.factory import Factory

Builder.load_file('ejemplo.kv')


class CheckBoxList(Factory.BoxLayout):
    values = Factory.ListProperty()

    def __init__(self, **kwargs):
        self._trigger = Clock.create_trigger(self._do_update)
        super(CheckBoxList, self).__init__(**kwargs)
        self.bind(x=self._trigger, y=self._trigger)

    def add_widget(self, widget, index=0):
        super(CheckBoxList, self).add_widget(widget, index=index)
        widget.bind(on_press=self._trigger)

    def remove_widget(self, widget):
        super(CheckBoxList, self).remove_widget(widget)
        widget.unbind(on_press=self._trigger)

    def _do_update(self, *largs):
        self.values = [tcb.text for tcb in self.children if tcb.on_press]


class TextCheckBox(Factory.ButtonBehavior, Factory.BoxLayout):
    text = Factory.StringProperty()
    on_press = Factory.BooleanProperty(False)


class MyApp(App):
    def build(self):
        return CheckBoxList()

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

...........................

código.kv:

<CheckBoxList>:

        id: cblist
        TextCheckBox:
                text: 'Software'
        TextCheckBox:
                text: 'Hardware'

        BoxLayout:

                orientation: 'horizontal'
                width: 500
                size_hint: None, None
                pos_hint:{'center_x':.1,'center_y':.50}

                Label:
                        text: cblist.values and 'You Selected: {}'.format( ', '.join(cblist.values)) or 'Please make selection.'

<TextCheckBox>:

        orientation: 'horizontal'
        on_press: cb.on_press
        on_press: root.on_press= not root.on_press
        CheckBox:
                id: cb
                on_press: root.on_press
        Label:
                id: lbl
                text: root.text

预期结果是.py-.kv代码显示了从一个或两个TextCheckBox选项进行的选择。

2 个答案:

答案 0 :(得分:0)

目前我还没有收到关于此问题的答案,但是我找到了另一种可能的解决方案,尽管它是一个很好的局部解决方案,但是它是所需代码的一部分。

我有两个屏幕:在“ MainScreen”中,有一个直接指向“ Screen2”的按钮,我已经可以在其中选择四个“ CheckBox”中的一个或几个选项,然后将按钮按到“选择“ Aceptar”,然后立即将其打印在同一屏幕上,然后按第二个按钮“ Volver”返回到初始屏幕“ MainScreen”。

缺少的是在第一个“ MainScreen”中所做的选择也被更新。

我已经搜索了好几个星期,但我找到并实现的所有代码对我来说都不起作用;按班级父母和孩子之间的属性,我总是遇到错误问题。

如果我没有得到答案,我想我将尝试在一个类中实现我的项目,并将功能集中于.kv文件,以便能够执行我需要的操作,而不会使之间的属性访问权限变得复杂课程。

接下来,我将分享我已经编写的.py和.kv代码,并已经对他们进行了评论,以便他们在个人计算机中进行验证,以防有人输入可能的解决方案。

非常感谢您。

.py

from kivy.app import App

from kivy.uix.screenmanager import Screen
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.properties import StringProperty
from kivy.properties import ObjectProperty
from kivy.uix.screenmanager import ScreenManager


Window.size = (600, 325)


class MainScreen(Screen):
    manager = ObjectProperty(None)

    def __init__(self, *args, **kwargs):
        super(MainScreen, self).__init__(*args, **kwargs)

    def on_pre_enter(self):
        Window.size = (600, 400)


class Screen2(Screen):
    def __init__(self, *args, **kwargs):
        super(Screen2, self).__init__(**kwargs)

    def on_pre_enter(self):
        Window.size = (380, 280)

    gender1 = StringProperty("")
    gender2 = StringProperty("")
    gender3 = StringProperty("")
    gender4 = StringProperty("")
    gender5 = StringProperty("")

    def insert_data(self):

        print("Gender1={}".format(self.gender1))
        print("Gender2={}".format(self.gender2))
        print("Gender3={}".format(self.gender3))
        print("Gender4={}".format(self.gender4))

        self.ids['label_9'].text = format(self.gender1)
        self.ids['label_10'].text = format(self.gender2)
        self.ids['label_11'].text = format(self.gender3)
        self.ids['label_12'].text = format(self.gender4)


class WidMounts(BoxLayout):
    None


class ScreenManagement(ScreenManager):
    pass

presentation = Builder.load_file("CheckBox 7.kv")


class MyApp(App):
    def build(self):

        return presentation

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

.kv

#:kivy 1.10.0
#:import FadeTransition kivy.uix.screenmanager.FadeTransition
# File name: CheckBox 7.kv

ScreenManagement:

    id: screen_manager
    transition: FadeTransition()
    MainScreen:
        name: "star1"
    Screen2:
        name: "star2"

<MainScreen>:
    id: principal
    name: "star1"
    padding: 1
    spacing: 1
    orientation: "horizontal"
    canvas:
        Color:
            rgb: 0, 0, 1
        Rectangle:
            size: self.size
            pos: self.pos

    Button:
        id: play
        text: "Play"
        font_size:30
        text_size: None, None
        halign:'center'
        size_hint: .2, .14
        color:0,1,1,1
        pos_hint:{'center_x':.50,'y':.30}
        on_release: root.manager.current = "star2"

    Label:
        id:label_13
        text:"?..."
        text_size: (110, 40)
        halign:'left'
        font_size:30
        size_hint:1, .15
        pos_hint:{'center_x':.57,'y':.80}
        color:1,1,1,1


    Label:
        id:label_14
        text:"?.."
        text_size: (110, 40)
        halign:'left'
        font_size:30
        size_hint:1, .15
        pos_hint:{'center_x':.57,'y':.70}
        color:1,1,1,1

    Label:
        id:label_15
        text:"?.."
        text_size: (110, 40)
        halign:'left'
        font_size:30
        size_hint:1, .15
        pos_hint:{'center_x':.57,'y':.60}
        color:1,1,1,1

    Label:
        id:label_16
        text:"?.."
        text_size: (110, 40)
        halign:'left'
        font_size:30
        size_hint:1, .15
        pos_hint:{'center_x':.57,'y':.50}
        color:1,1,1,1


<Screen2>:
    name: "star2"
    GridLayout:
        size:self.size
        cols: 2
        size_hint:.9, .99
        padding : 100,20
        spacing: 20, 20
        row_default_height: '10dp'


        Label:
            id:label_r
            text: "R"
            text_size: self.size
            halign:'center'
            valign: 'middle'


        CheckBox:

            id : chk
            text: "R"
            on_active:
                root.gender1 = self.text


        Label:
            text: 'F'
            text_size: self.size
            halign:'center'
            valign: 'middle'

        CheckBox:

            text: "F"
            on_active:
                root.gender2 = self.text

        Label:
            text: 'C'
            text_size: self.size
            halign:'center'
            valign: 'middle'

        CheckBox:

            text: "C"
            on_active:
                root.gender3 = self.text

        Label:
            text: 'T'
            text_size: self.size
            halign:'center'
            valign: 'middle'

        CheckBox:

            text: "T"
            on_active:
                root.gender4 = self.text

        Button:
            text: 'Aceptar'
            on_press: root.insert_data()

        Button:
            text: 'Volver'
            on_release: root.manager.current = "star1"

        Label:
            id:label_9
            text:"?"
            text_size: (110, 40)
            halign:'center'
            font_size:30
            size_hint:1, .15
            pos_hint:{'center_x':.30,'y':.90}
            color:1,0,0,1


        Label:
            id:label_10
            text:"?"
            text_size: (110, 40)
            halign:'center'
            font_size:30
            size_hint:1, .15
            pos_hint:{'center_x':.30,'y':.80}
            color:1,0,0,1

        Label:
            id:label_11
            text:"?"
            text_size: (110, 40)
            halign:'center'
            font_size:30
            size_hint:1, .15
            pos_hint:{'center_x':.30,'y':.70}
            color:1,0,0,1

        Label:
            id:label_12
            text:"?"
            text_size: (110, 40)
            halign:'center'
            font_size:30
            size_hint:1, .15
            pos_hint:{'center_x':.30,'y':.60}
            color:1,0,0,1

答案 1 :(得分:0)

还没有人回答我的问题,但是我仍在推进项目,如前所述,我修改了代码以使用更多的.kv文件,现在我有了主屏幕和辅助屏幕。

该项目大约是一本12个月的年鉴,每个月30天,其目的是使用户对自己的活动进行一年一次的全局跟踪。

在屏幕“主”中​​,日历的每个按钮代表一天(365个按钮),每个按钮都指向另一个屏幕(1、2、3,...,365),其中有四个“复选框”显示活动用字母(R,F,C,T)标识,可以分别或以任何顺序和数量选择组中的字母,例如:R,RC,RFT,RFCT。

我们还有三个按钮(接受,清除,返回);通过“接受”,内部将选择的“复选框”发送到屏幕“主”,然后通过按钮“返回”,返回“主”,我可以看到所做选择的数据;使用“清洁”按钮,我可以删除先前所做的选择,当我按下“返回”按钮时,我会发现那天没有任何数据,完全干净,如果需要,我可以再次输入并进行其他选择。 / p>

所缺少的是所做的选择,并且我已经在主屏幕或“主”中拥有该选择,因此可以将其保存在备份中,以便在关闭应用程序时不会删除数据,因此我再次打开它,它们将在我使用该应用程序时选择的每一天都在那里。

另一方面,缺少所选日期中字母根据复选框的每个选择而具有颜色的信息。

接下来,我分享我已经意识到的代码.py和.kv,并且我已经对它们进行了注释,以便您可以在PC上进行验证,以防有人想找到可能的解决方案。我必须指出,接下来的代码至少要表达一个月(一月)和四天(1、2、3、4),因为整整一年都是很多要直接在此处发布的代码网站。

在向您展示最小化代码之前,我会给您留下一整年的图像,以便您对该项目有所了解:

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.

Screen "1" with the four options to select, you can see the buttons " Aceptar ", " Limpiar " and " Volver ".

Screen "1" with the four options selected and other three examples.

Screen "main" with the selections made shown on days 1, 2, 3 and 4.

非常感谢您。

我用过基维版。 1.11.1

代码.py

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

代码.kv

<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'