Добавить макет python в файл Kivy - PullRequest
0 голосов
/ 18 марта 2020

Я новичок в kivy и мне нужна помощь. Я пытаюсь добавить макет, который я сделал в python классе, который является клавиатурой для файла kv. Я могу сделать кнопки в файле kv, но это включает создание отдельных кнопок для каждой кнопки. В python я могу сделать это легко с помощью для l oop и добавить событие нажатия клавиши. Я просто не знаю, как заставить его отображаться в файле kv, который, скажем, просто экран для отображения клавиатуры. Любая помощь будет оценена. Мой проект должен быть в конце месяца, и я застрял на нем некоторое время.

#!/usr/bin/python3.6

import kivy

# base Class of your App inherits from the App class.
# app:always refers to the instance of your application
from kivy.app import App

# The GridLayout arranges children in a matrix.
# It takes the available space and divides
# it into columns and rows, then adds
# widgets to the resulting “cells”.
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout

# Builder is a global Kivy instance used
# in widgets that you can use to load other
# kv files in addition to the default ones.
from kivy.lang import Builder


# Loading Multiple .kv files
from kivy.uix.screenmanager import Screen
from menulibre.MenulibreApplication import root

Builder.load_file('run.kv')
Builder.load_file('keypad.kv')
Builder.load_file('box3.kv')

class keypad(Screen):

    def __init__(self, **kwargs):
        super(keypad, self). __init__(**kwargs)


        view = self.root.ids.my_grid
        grid = GridLayout(cols=3, size_hint_y=None, spacing='1dp')

        keys = [1,2,3,4,5,6,7,8,9,'Del',0,'Ent']

        for num in keys:
            grid.add_widget(Button(text=str(num)))

        view.add_widget(grid)


# Creating main kv file class
class main_kv(GridLayout):
    pass

# Create App class
class MainApp(App):
    def build(self):
        self.x = 150
        self.y = 400
        return main_kv()

# run the App
if __name__=='__main__':
    MainApp().run()


<Box3@BoxLayout>:

    GridLayout:

        id: my_grid
        size_hint_y: None
        height: '200dp'


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...