Bagaimana cara menambahkan gui ke proyek python saya menggunakan kivy?

Saya ingin membuat gui untuk proyek python lama menggunakan kivy dan saya ingin memisahkan antara kelas proyek lama dan widget kivy, tetapi saya tidak tahu cara menampilkan informasi dari atribut kelas tanpa mengubahnya menjadi Properti Kivy .

class Person(object):
    """ Person information """
    def __init__(self, name, last_name, age):
        self.name = name
        self.last_name = last_name
        self.age = age

Saat saya membaca cara kerja Kivy, saya rasa saya harus melakukan sesuatu seperti ini:

class PersonWidget(Widget):
    """ Person Kivy's widget """
    name = StringProperty("")
    last_name = StringProperty("")
    age = NumericProperty("")

Dan kemudian file .kv:

#:kivy 1.0.9

<PersonWidget>:

    canvas:
        pos: 0, 0
        size: 100, 100

    Label:
        text: str(root.name)

Mengabaikan file .kv yang tidak lengkap, apakah ada cara lain untuk mencetak beberapa atribut kelas di widget tanpa mendefinisikannya seperti Properti Kivy? Karena saya ingin menggunakan Person dan PersonWidget untuk memisahkan logika dan kode gui.

PD: Saya baru di stackoverflow, maaf jika ada yang membingungkan atau salah.

Terima kasih.


person L. Kammann    schedule 21.01.2019    source sumber


Jawaban (1)


Anda harus mempelajari lebih lanjut tentang aturan kivy... ;o)
Untuk kelas Person Anda, Anda harus membuat aturan kv <Person>

<Person>:
    canvas:
        pos: 0, 0
        size: 100, 100
    Label:
        id: person_label
        text: ""

Di dalam aturan itu Anda dapat menambahkan widget apa pun, tetapi jika Anda ingin mengaksesnya dari sisi .py, widget tersebut harus memiliki id untuk mengidentifikasinya.
Untuk menggunakannya dari kelas Anda, Anda hanya perlu melakukan self.ids.person_label.text = "The Person's name"

person noEmbryo    schedule 21.01.2019