Kivy 按钮和功能以及从 tkinter 转换

问题描述 投票:0回答:1

我是 kivy 和 python 的新手,我使用 tkinter 创建了一个应用程序,可以在我的电脑上运行它,但确实需要在我的移动设备上使用它。后来发现无法将 tkinter 转换为 apk 或 ios,这让我很困惑,哈哈。

enter image description here

当我点击 tkinter 中的按钮时,它会从销售中获取输入,进行一些计算,然后输出到每个标签下的空间

每个按钮输出到 3 个点,我怎样才能在 kivy 中做到这一点?我应该在 KV 文件中执行它还是应该用 python 编写代码,如果是的话如何在 gui 的 kv 文件中调用该函数?

抱歉,我知道完整的菜鸟问题,有 1000 个可能的答案

谢谢乔丹

python-3.x tkinter kivy kivy-language
1个回答
0
投票

这是一个可以帮助您入门的模板。分为test.py和test.kv

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.lang import Builder


# this object name should match the .kv file object
class MyBoxLayout(BoxLayout):
    my_textinput: TextInput

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.my_textinput.text = "hello"


class MyApp(App):
    def build(self):
        return self._main

    def button_pressed(self, my_button: Button, number: int, *args, **kwargs):
        print(type(my_button))
        self._main.my_textinput.text = f"button {number}"

    def __init__(self):
        super().__init__()
        Builder.load_file("test.kv")
        self._main = MyBoxLayout()


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

和 .kv 文件

<MyBoxLayout>:
    orientation: "vertical"
    padding: 20

    # python on this side: Kivy id on this side
    my_textinput: my_textinput
    Label:
        text: "Example application"
        font_size: 24
        size_hint_y: None
        height: 50

    TextInput:
        id: my_textinput
        hint_text: "Enter text here"

    BoxLayout:
        size_hint_y: 2

        Button:
            text: "Button 1"
            on_press: app.button_pressed(self, 1)

        Button:
            text: "Button 2"
            on_press: app.button_pressed(self, 2)

        Button:
            text: "Button 3"
            on_press: app.button_pressed(self, 3)
© www.soinside.com 2019 - 2024. All rights reserved.