找回密码
 立即注册
搜索
查看: 1852|回复: 10

[软件] Python tkinter的Entry组件黏贴超长文本后会非常卡顿怎么解决?

[复制链接]
     
发表于 2020-5-1 13:31 | 显示全部楼层 |阅读模式
本帖最后由 糊状物 于 2020-5-1 13:33 编辑

Python tkinter的Entry组件黏贴超长文本后会非常卡顿怎么解决?

#python 3.7.6  win10
from tkinter import *
root=Tk()
text=StringVar()
entry=Entry(root,textvariable=text)
entry.grid(row=0,column=0,sticky=NSEW)
root.mainloop()

运行后在输入框黏贴超长的文本后输入框会非常非常卡顿,例如黏贴以下文本:
完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全完全


不需要推荐替代方案(如推荐用pyqt5或换其他widget之类的,我单纯是使用上遇到这个问题想知道怎么解决。

回复

使用道具 举报

     
发表于 2020-5-1 13:49 | 显示全部楼层
如果是cpu跑满,那你看看是不是要考虑用异步
回复

使用道具 举报

     
 楼主| 发表于 2020-5-1 14:02 | 显示全部楼层
精钢魔像 发表于 2020-5-1 13:49
如果是cpu跑满,那你看看是不是要考虑用异步

cpu 0%,同一个线程同一个界面,其他地方就不卡,单独是输入了超长文本的Entry卡到爆。
回复

使用道具 举报

头像被屏蔽
     
发表于 2020-5-1 19:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
 楼主| 发表于 2020-5-1 19:39 | 显示全部楼层
すぴぱら 发表于 2020-5-1 19:36
试了一下2.7完全不卡,你什么配置?

i5 2300  
8G内存
我觉得不是配置问题啊,我说的卡不是整个GUI卡,而是单单这个输入框卡,将文本黏贴进去后你试试用鼠标选择部分文本?整个鼠标都一顿一顿的。
回复

使用道具 举报

头像被屏蔽
     
发表于 2020-5-1 19:44 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2020-5-1 19:46 | 显示全部楼层
试了一下,粘贴完之后反应稍微有些慢,但是也不至于特别卡...我是python 3.7.3 64bit的
回复

使用道具 举报

     
 楼主| 发表于 2020-5-1 19:56 | 显示全部楼层
すぴぱら 发表于 2020-5-1 19:44
哦,这样啊,字数特别多的情况下建议你用Text组件,鼠标操作文本速度极快 ...

其实我也知道用Text会快,但是就是想知道这个Entry是否可以调整,大概是触发了强迫症了吧
回复

使用道具 举报

     
发表于 2020-5-2 12:55 来自手机 | 显示全部楼层
2代i5,,,

—— 来自 samsung SM-G9750, Android 10上的 S1Next-鹅版 v2.2.2.1
回复

使用道具 举报

发表于 2020-5-2 17:38 | 显示全部楼层
最靠谱的办法大概是你比较一下Entry和Text这两个类的实现有什么区别,然后自己写个Entry的派生类把有问题的函数换掉

或者是你安装的tk后台有bug,升级一下版本
回复

使用道具 举报

     
发表于 2020-5-2 19:48 | 显示全部楼层
感觉这个组件的实现的时候没想到会有这么长的文本。文本粘贴进去以后前面的部分左右移动不卡,按end到最后进行同样的操作就挺卡的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-25 19:22 , Processed in 0.061998 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表