python android 点击按钮,的Python - Kivy - Builtdozer:有一个按钮来调用Android键盘

raw_input允许从标准输入(终端)获取输入。在Android上,您将无法使用该终端。此外,raw_input阻止了,这会导致应用程序的主事件循环冻结并导致您的应用程序停止响应。

你不应该使用raw_input而是Kivy自己的方法。

另一方面,你想让你的按钮可编辑(就像它是一个TextInput)。您可以创建自己的自定义按钮类或使用WindowBase.request_keyboard()来手动请求键盘。但是,您可以通过隐藏TextInput做小动作,并用它来输入文字:

from kivy.app import App

from kivy.lang import Builder

from kivy.uix.floatlayout import FloatLayout

from kivy.uix.textinput import TextInput

kv_text= ('''

:

FloatLayout:

orientation: 'horizontal'

Button:

text: 'Hello'

font_size: '20sp'

pos_hint: {'x':.0, 'y':.3}

size_hint: .4, .8

on_release: root.change_name(self)

Button:

text: 'World'

font_size: '20sp'

pos_hint: {'x':0.6, 'y':.3}

size_hint: .4, 0.8

on_release: root.change_name(self)

''')

class MyWidget(FloatLayout):

def __init__(self, **kwargs):

super(MyWidget, self).__init__(**kwargs)

self.hide_input = TextInput(size_hint=(None, None),

size = (0, 0),

multiline = False)

self.hide_input_bind = None

def change_name(self, instance):

if self.hide_input_bind:

self.hide_input.unbind_uid('text', self.hide_input_bind)

self.hide_input.text = instance.text

self.hide_input.focus = True

self.hide_input_bind = self.hide_input.fbind('text', self._update_text, instance)

def _update_text(self, button, instance, value):

button.text = value

class MyKivyApp(App):

def build(self):

return MyWidget()

def main():

Builder.load_string(kv_text)

app = MyKivyApp()

app.run()

if __name__ == '__main__':

main()

应用程序在Android工作(Kivy启动器):

77c7ef06c6a510f172bd3948bd156fdb.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值