Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Kivy TextInput on_double_tap

Kivy TextInput on_double_tap
EN

Stack Overflow用户
提问于 2013-10-25 16:49:43
回答 1查看 849关注 0票数 1

我已经添加了一个文本输入窗口到我的Kivy应用程序,我试图用窗口做两件事。默认情况下,文本输入窗口突出显示双击的单词。我想把这个单词存储到一个变量中,而不知道如何将它从输入窗口传递给变量。第二,我试图从操作系统中剪切并粘贴到Kivy中,但无法理解。任何帮助都将不胜感激。这是我到目前为止的代码。谢谢你帮助我走到这一步。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Builder.load_string('''

<MouseWidget>:
    image: image
    label: label
    orientation: 'vertical'
    Image:
        id: image
        source: root.source
    Label:
        id: label
        size_hint_y: None
        height: 50
        text: 'Test'
''')

class MouseWidget(BoxLayout):
    image = ObjectProperty()
    label = ObjectProperty()
    source = StringProperty()


    def on_touch_down(self, touch):
        if self.image.collide_point(*touch.pos):
            trigger = 0
            if touch.x >= 133 and touch.x <= 646 and touch.y >= 162 and touch.y <=675:
            self.label.text = str(touch.pos)


    def on_touch_up(self, touch):
        self.label.text = 'This is a test'



class TESTApp(App):
    def build(self):
        root = Accordion(orientation='horizontal')

        item= AccordionItem(title='Test')
        src = "image.png"
        image = MouseWidget(source=src, size_hint = (1.0, 1.0))

        textinput = TextInput(text='Hello world', size_hint = (0.5, 1.0))
        textinput.bind(text2 = on_double_tap())


        # add image to AccordionItem
        item.add_widget(image)
        item.add_widget(textinput)
        root.add_widget(item)

    return root

if __name__ == '__main__':
    TESTApp().run()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-26 00:54:50

只需像下面这样重写您的on_double_tap方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from kivy.app import App
from kivy.uix.textinput import TextInput
from kivy.clock import Clock


class Test(TextInput):

    def on_double_tap(self):
        # make sure it performs it's original function
        super(Test, self).on_double_tap()

        def on_word_selection(*l):
            selected_word = self.selection_text
            print selected_word
            # do what you want with selected word here

        # let the word be selected wait for
        # next frame and get the selected word
        Clock.schedule_once(on_word_selection)

class TestApp(App):

    def build(self):
        return Test()


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

对于复制和粘贴TextInput支持ctrl + x、c、v,内部TextInput使用粘贴函数。您不应该直接使用它们,kivy负责处理这个问题,只需使用ctrl + c,x,v。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19601590

复制
相关文章
结构体内存对齐
#include <stdio.h> #include <string.h> #include <malloc.h> /* So, when you are working with image headers, binary headers, and network packets, and are trying to access the TCP/ IP header, structure padding has to be avoided. */ int main(int argc, char* a
用户4645519
2020/09/07
6660
结构体成员在内存中的对齐方式
这个话题还是很早以前讨论过,当时并没有好好的理解,最近在复习知识的时候又重新看了一遍资料,自己做一下总结,也希望后面有人需要学习时可以对他有所帮助。以下我会举两个结构体的例子,分别画图的方式表达对齐的原则。
我与梦想有个约会
2023/10/21
2140
结构体成员在内存中的对齐方式
结构体内存对齐_1
#include <stdio.h> #include <string.h> #include <malloc.h> /* So, when you are working with image headers, binary headers, and network packets, and are trying to access the TCP/ IP header, structure padding has to be avoided. */ int main(int argc, char* a
用户4645519
2020/09/07
3770
结构体内存对齐——2
#include <stdio.h> #include <string.h> #include <malloc.h> /* So, when you are working with image headers, binary headers, and network packets, and are trying to access the TCP/ IP header, structure padding has to be avoided. */ int main(int argc, char* a
用户4645519
2020/09/07
4110
结构体内存对齐解析
虽然所有的变量最后都会保存到特定的地址内存中去,但是相应的内存空间必须满足内存对齐的要求,主要基于存在以下两个原因:
wenzid
2021/03/04
5910
结构体内存对齐解析
CPP--借助神器VS理解内存存储(含大小端对齐)
前面我发过用vs看内存存储的文章,90%耐心看的都懂了,这次结合上次发的文章,对大小端对齐再来个说明(有一个没学过计算机的朋友都懂了,自己看自己的悟性定位吧~努力可以弥补99%的可能) 单位,补码之类
逸鹏
2018/04/11
8130
CPP--借助神器VS理解内存存储(含大小端对齐)
内存对齐
对于结构(或联合)的各个成员,第一个成员位于偏移为0,以后每个数据成员的偏移量必须是#pragma pack指定的数值和结构体(或联合)中最大数据成员长度 这2个数值中较小的一个的倍数。 使用伪代码表示: min(#pragma pack, 结构最大数据成员长度) * N
opencode
2022/12/26
1.2K0
内存对齐
内存对齐
内存对齐:#pragma pack(字节数) 如果用1,那么内存之间就没有空隙了
用户10731060
2023/09/02
2280
内存对齐
被Go语言称为寄存器宽度的这个值,就可以理解为机器字长,也是平台对应的最大对齐边界,而数据类型的对齐边界是取类型大小与平台最大对齐边界中的较小的那个
Michel_Rolle
2023/07/30
2.5K0
结构体的内存对齐规则
既然这样,那在设计结构体的时候,我们既要满足对齐,又要节省空间,如何做到:让占用空间小的成员尽量集中在一起。 如:
利刃大大
2023/04/12
4770
结构体的内存对齐规则
CSDN Markdown编辑器改变图片对齐方式(居中,左对齐,右对齐)及改变图片大小
我也是由于想博客更美观要使图片居中,查阅百度后,结合自己走的弯路,在此给大家提供借鉴。 使用CSDN中Markdown编辑器的帮助文档的方法插入图片Ctrl/Command + Shift + G,上传图片不要使用搜狗输入法,按键功能有冲突,上传完后如图
小火柴棒
2019/01/11
4K0
GO 内存对齐
之前遇到过这样一个情况(发现问题的结构体并不长这样, 不过为了引出问题, 改了一下):
烟草的香味
2020/11/25
1.3K0
GO 内存对齐
详解内存对齐
在了解内存对齐之前,先来明确几个关于操作系统的概念,更加方面我们对内存对齐的理解。
Golang梦工厂
2022/07/11
1.2K0
详解内存对齐
C&C++结构体内存对齐
不是所有硬件平台都能访问任意地址上的任意数据,某些硬件平台只能在某些特定地址处取某些特定的数据,否则就会抛出硬件异常。也就是说计算机在读取内存数据时,只能在规定的地址处读数据,而不是在内存中任意位置都会可以读取的。
半生瓜的blog
2023/05/13
2470
C&C++结构体内存对齐
【C语言笔记】结构体内存对齐
在32位编译系统下这一个结构体的字节数是多少呢?是1+4+1+2=8字节吗?不是的,实际结果为12字节。为什么呢?因为编译器会对不足4字节的变量空间自动补齐为4个字节(这就是内存对齐),以提高CPU的寻址效率(32位CPU以4个字节步长寻址的)。
正念君
2019/06/26
6740
【C语言笔记】结构体内存对齐
浅谈Golang内存对齐
如果你在 golang spec 里以「alignment」为关键字搜索的话,那么会发现与此相关的内容并不多,只是在结尾介绍 unsafe 包的时候提了一下,不过别忘了字儿越少事儿越大:
LA0WAN9
2021/12/14
1.4K0
浅谈Golang内存对齐
内存对齐(C++)
众所周知,C++的空类占用1个字节的内存空间,非空类占用的空间与类内的成员有关。 但类中成员所占内存并不是连续的,拿以下代码举例:
LonelyEnderman
2022/10/27
9920
内存对齐(C++)
结构体对齐
现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。
用户7272142
2023/10/11
2300
结构体对齐
Go内存对齐详解
在《小许code:Go内存管理和分配策略》这篇分享中我们了解到Go是怎么对内存进行管理和分配的,那么用户的程序进程在linux系统中的内存布局是什么样的呢?我们先了解一下基础知识,然后再看Go的内存对齐。
小许code
2023/04/14
2.1K0
Go内存对齐详解
内存对齐(Memory Alignment)
本文介绍了内存对齐的概念,包括内存对齐的原则和具体说明,并通过实例进行了详细解释。
用户1148523
2018/01/09
8630

相似问题

React Hooks -无效的Hook调用

28

无效的Hook调用React本机

15

使用React表单的useQuery (从React查询)抛出无效的Hook调用

112

React,react路由器useHistory。未捕获的错误:钩子调用无效

166

异步API调用的Hook调用无效

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文