-
-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
支持Entry组建的粘贴,选中功能 #17
Comments
此问题是在计划中的,详情见待办事项,预计在 注:版本路线为 此功能稍微有点复杂,目前文本类控件只有基础的功能(输入、删除、移动光标位置、隐藏过多文本和限制文本长度等),且存在一定的 bug,未来会添加选中、复制、粘贴、剪切、全选、文本替换(如密码框将字符替换为其它字符以隐藏内容)并修复已知 bug。 |
其实...刚刚我查看了下源代码,找到了一个可能的解决方案,就是在tkintertools>standard>features.py>Entry>_input的函数中监听ctrl v 的事件,我尝试过了,其确实有效。尚未实验其稳定性 |
对了,还有一个问题,就是在Entry输入的文本超过文本框的长度时,使用退格键删除文本会将Python卡死,请问您有遇到吗 |
不用担心,文本框复制粘贴的功能很简单,这个早在 tkt 2 就实现了(你可以下载 tkt 2 试试),主要是选中和隐藏多余部分的文本不好实现 |
你很仔细,不过这是个已知问题,见之前的 README 的底部已知问题部分(README 更新后没放出来了): 由于当前属于 beta 版本,我就没有将这个问题摆出来,怕别人误以为是稳定版的问题 |
这是当时无法很好实现隐藏多余文本功能时产生的 bug,由于 tkt 框架的原因,此功能目前貌似无法依靠 tkinter 相关功能实现,必须重新编写相关事件和功能,比较麻烦(这一个功能的难度比完成其它所有控件的功能都还复杂),所以暂时没有完善好它 |
我发现在向entry输入文本时是对Text对象进行加减,请问关于相关的控制显示字体的代码是在哪里呢?我无法找到那部分代码,我也找不到Entry->_input那段代码的move_area在Text的实现。可以解答一下吗?我想看看我是否有能力去调整。 |
目前没有关于方法 顺便提一下框架结构吧, 关于文本输入的功能,应当在 |
Added parameter `show` to mask the original character content; The new parameter `placeholder` will prompt you when the input box is empty; The new parameter `align` determines the alignment of the text in the input box, which supports left, right and center methods; #17: Ctrl+V shortcut key combination is supported to paste text to the cursor.
文本粘贴功能已经实现,复制、剪切的 API 已写好,但由于暂时没有实现选中的功能,暂不将它们完全实现,具体见 Commit:366b646 同时增加的功能还有:
当前提交不代表 |
输入框已完全支持文本的选中、复制、粘贴、剪切以及双击全选功能了,细见:d62770d 上述提交不代表 但输入框仍存在之前提到的 bug,这个会在 最后,感谢您提供的功能建议!❤️ |
输入框删除键导致死循环从而卡死的 bug 已解决:651cbbb |
🎯 Feature Description
我搭建一个输入框给用户进行输入操作,但是输入的数据有时又长又复杂,有时需要选中部分文字进行删除,但是这些在tkintertools3.0.0b3是无法实现的
🚀 Possible Implementation
或许可以从tkinter组建找到读取剪贴板并输入控件的方法?我并没有仔细研读过其源代码
✉️ Contact Details
No response
The text was updated successfully, but these errors were encountered: