【问题标题】:For some reason when I triple tap a TextInput, the tapped line isn't selected出于某种原因,当我三次点击 TextInput 时,未选择点击的行
【发布时间】:2019-01-25 17:40:41
【问题描述】:

我在一个项目中使用 kivy 的 TextInput。在文档中,他们说 TextInput.on_triple_tap 正在选择整个点击线。 但是当我三次点击文本框中的一行时,没有选择任何内容。

我什至尝试制作自己的 on_triple_tap 函数,但也没有用。

我错过了什么吗?

第一个例子 - 这应该有效,但它没有

from kivy.app import App
from kivy.uix.textinput import TextInput


class ManagerApp(App):
    def build(self):
        return TextInput(text='hello world')


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

第二个例子 - 我试图覆盖 on_triple_tap,打印 'reached' 但没有选择任何东西

from kivy.app import App
from kivy.uix.textinput import TextInput


class ManagerApp(App):
    def build(self):
        self.ti = TextInput(text='hello world', 
on_triple_tap=self.my_triple_tap)
        return self.ti

    def my_triple_tap(self, ti):
        print 'reached'
        ti.select_all()


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

【问题讨论】:

    标签: python python-2.7 kivy


    【解决方案1】:

    TextInput 中必须至少包含一“行”文本。这意味着至少有一个newline 字符。变化:

    class ManagerApp(App):
        def build(self):
            return TextInput(text='hello world')
    

    到:

    class ManagerApp(App):
        def build(self):
            return TextInput(text='hello world\n')
    

    【讨论】:

    • 哇,这是一个我不会想到的解决方案。如果我使用 multiline=False,它的工作原理是一样的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 2017-07-03
    • 1970-01-01
    • 2017-09-10
    • 2017-07-03
    • 2021-08-24
    • 2015-09-14
    相关资源
    最近更新 更多