Как исправить, когда python распознает только один файл .kv - PullRequest
0 голосов
/ 19 апреля 2019

Я только начал изучать Киви сегодня.Книга, на которую я ссылаюсь, использует файлы kv.Проблема в том, что когда я создаю более одного файла .kv и когда я импортирую другой, он не работает.Пожалуйста, любая подробная помощь будет оценена, так как я начинающий.Спасибо

Я уже много искал и пробовал с мест, но, похоже, ничего не работает.

main.py

    from kivy.app import App
    from kivy.uix.boxlayout import BoxLayout
    from kivy.uix.widget import Widget
    from kivy.lang import Builder

    class AddLocationForm(BoxLayout):
        pass

    class WeatherApp(App):
        pass

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

AddLocationForm.kv

    AddLocationForm:
    <AddLocationForm@BoxLayout>:
        orientation: "vertical"
        BoxLayout:
            TextInput:
            Button:
                text: "Search"
            Button:
                text: "Current Location"

weather.kv

    BoxLayout:
        Label:
            text: "Hello"
        Label:
            text: "Awesome"
        Label:
            text: "World"

Я хочу, чтобы он напечатал строки, а также показал кнопку.

Ответы [ 2 ]

0 голосов
/ 19 апреля 2019

Вы также можете использовать Builder для загрузки файлов или строк kv.

from kivy.lang import Builder

Builder.load_file("kvfile1.kv")
Builder.load_file("kvfile2.kv")
0 голосов
/ 19 апреля 2019

Использовать языковые директивы Kv, include <file>

Фрагменты - weather.kv

#:include AddLocationForm.kv

AddLocationForm:
    BoxLayout:
        Label:
            text: "Hello"
        Label:
            text: "Awesome"
        Label:
            text: "World"

Фрагменты - AddLocationForm.kv

<AddLocationForm@BoxLayout>:
    orientation: "vertical"
    BoxLayout:
        TextInput:
        Button:
            text: "Search"
        Button:
            text: "Current Location"

выход

Result

Kv language »Директивы Ланга

include <file>

Синтаксис:

#:include [force] <file>

Включает внешний файл KIVY. Это позволяет разделить комплекс виджеты в свои файлы. Если включение принудительно, файл будет сначала быть выгруженным, а затем снова загруженным. Например:

# Test.kv
#:include mycomponent.kv
#:include force mybutton.kv

<Rule>:
    state: 'normal'
    MyButton:
    MyComponent:

# mycomponent.kv
#:include mybutton.kv

<MyComponent>:
    MyButton:
# mybutton.kv

<MyButton>:
    canvas:
        Color:
            rgb: (1.0, 0.0, 0.0)
        Rectangle:
            pos: self.pos
            size: (self.size[0]/4, self.size[1]/4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...