当我看埃克纳瓦拉关于竞争节目的视频时,我发现他的视频中有一些有趣的东西.

此运行文本

这是视频的链接

所以我试着用tkinter创建这样的运行文本.python中的文本小部件.

当然,我在文本中插入的所有字符的长度都可能超过文本小部件在一个句子中所能容纳的长度.这就是为什么我想让文本小部件"始终"看到索引末尾的字符(小部件可以容纳的字符数),直到结束

这是我的密码

from tkinter import *

def handle(event):
    text.config(state = NORMAL)
    text.insert(END, event.keysym)
    text.config(state = DISABLED)

    # Things to be fix
    text.doSomethingToMakeItBehaveLikeEntryWidget()

window = Tk()
window.geometry('500x500')

text = Text(window, font = ('Arial', 20), height = 1)
entry = Entry(window, font = ('Arial', 20))

text.config(state = DISABLED)

text.pack()
entry.pack()

window.bind('<Key>', handle)

window.mainloop()

这个问题有什么解决方法吗?即使我必须使用另一个小部件而不是文本小部件来解决它?谢谢你的帮助

推荐答案

假设您在文本小部件中只使用一行,那么您可以在只读模式下使用条目.

无论您使用条目还是文本小部件,都可以使用方法text.xview_moveto(<fraction>)设置内容的哪一部分是可见的,<fraction>是小部件内容的相对部分,隐藏在左侧.如果将该分数设置为1,将确保最后一个字符可见.

from tkinter import *

def handle(event):
    text.config(state=NORMAL)
    text.insert(END, event.keysym)
    text.config(state="readonly")
    text.xview_moveto(1)


window = Tk()
window.geometry('500x500')

text = Entry(window, font = ('Arial', 20), state="readonly", readonlybackground="white")
entry = Entry(window, font = ('Arial', 20))

text.config(state = DISABLED)

text.pack()
entry.pack()

window.bind('<Key>', handle)

window.mainloop()

Python相关问答推荐

Python 3.12中的通用[T]类方法隐式类型检索

如何让剧作家等待Python中出现特定cookie(然后返回它)?

为什么带有dropna=False的groupby会阻止后续的MultiIndex.dropna()工作?

将输入管道传输到正在运行的Python脚本中

按顺序合并2个词典列表

PMMLPipeline._ fit()需要2到3个位置参数,但给出了4个位置参数

基于字符串匹配条件合并两个帧

修复mypy错误-赋值中的类型不兼容(表达式具有类型xxx,变量具有类型yyy)

如何创建一个缓冲区周围的一行与manim?

如何在turtle中不使用write()来绘制填充字母(例如OEG)

调用decorator返回原始函数的输出

需要帮助重新调整python fill_between与数据点

使用Python查找、替换和调整PDF中的图像'

重置PD帧中的值

人口全部乱序 - Python—Matplotlib—映射

在电影中向西北方向对齐""

如何在信号的FFT中获得正确的频率幅值

Pandas:计数器的滚动和,复位

如何使用Polars从AWS S3读取镶木地板文件

正则表达式反向查找