python - 使用 python 读/写 kivy 小部件属性

标签 python widget kivy textinput

我有 Python 的基本应用知识,我正在尝试自学 kivy。我希望能够让 Python 读取数据并将数据写入 kivy 小部件。

假设有一个地址簿应用程序可以将日期和时间插入到 TextInput 中。当应用程序启动时,让 Python 获取日期和时间并将其正确插入?

此程序代码将给出一个简单的地址簿示例:

from kivy.app import App

from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput

class AddressApp(App):
    def build(self):
        pass

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

这是它的 address.kv 文件:

GridLayout:
    cols: 2
    Label:
    text: 'Date'
TextInput:
    id: textinputdate
Label:
    text: 'Time'
TextInput:
    id: textinputtime
Label:
    text: 'Name'
TextInput:
    id: textinputname
Label:
    text: 'Address'
TextInput:
    id: textinputaddress
Label:
    text: 'email'
TextInput:
    id: textinputemail
Label:
    text: 'Phone'
TextInput:
    id: textinputphone

在那之后,如果我想让 Python 读取...我不知道...呃...电话号码 TextInput,该怎么做?

最佳答案

如果您希望某些小部件具有额外的功能(例如:在应用程序启动时加载当前日期),请创建该小部件的自定义版本,以满足要求。在规则中读取小部件的值非常简单。示例:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.textinput import TextInput
from kivy.clock import Clock
import time

gui = '''
BoxLayout:
    orientation: 'vertical'

    GridLayout:
        cols: 2

        Label:
            text: 'current time'

        DateInput:
            id: date_input

    Button:
        text: 'write date to console'
        on_press: print(date_input.text)
'''


class DateInput(TextInput):

    def __init__(self, **kwargs):
        super(DateInput, self).__init__(**kwargs)
        Clock.schedule_interval(self.update, 1)  # update every second

    def update(self, dt):
        self.text = time.ctime()


class Test(App):

    def build(self):
        return Builder.load_string(gui)


Test().run()

关于python - 使用 python 读/写 kivy 小部件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37771303/

相关文章:

drop-down-menu - 如何在 Flutter 中创建自定义下拉列表?

python - Kivy ActionBar 示例

python - 限制 python 3 中的无效输入

python - 组合数组以产生新的集体数组

python - Django“PostgreSQL”添加不可为空的字段

python - 如何使窗口在运行时可见/不可见?

android - 从 kivy/python 程序创建适用于 Android 的 APK

python - 如何从 python 中的 .wav 文件创建频谱图以解决音频分类问题

asynchronous - 如何正确显示行内的 future ?

c++ - 需要帮助使用 GTK2 为 wxWidgets (wxGTK) 编写 "backgroundless"小部件