python tkinter的Text控件,如何实现插入文本后将光标自动移动到行尾

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python tkinter的Text控件,如何实现插入文本后将光标自动移动到行尾相关的知识,希望对你有一定的参考价值。

python tkinter的Text控件,想要插入文本后将光标移动到行尾,另外想设定一个clear按钮,点击便清空文本域中的文本,该如何实现

你是想输入文本吗,输入文本光标就在行尾啊?至于清除你可以用设置textvariable变量为空就清除了追问

不是手动输入,是用insert插入的,Text控件好像没有这个textvariable属性吧

追答

噢 指的是文本输入那个啊?

from Tkinter import *
root = Tk()
t = Text(root)
t.pack()
t.insert(1.0,'0123456789')
t.insert(END,'jcodeer')
t.focus_force()
root.mainloop()

使用focus_force()来使光标在文本后面

追问

谢谢!
另外,这些文本可以设置为只读的么?因为光标随便定位在哪儿,就可以删除文本,我不想删除,我是将一些执行的结果放到Text控件中,或者有其它什么更合适的控件?

追答

state="disabled"
好像是这个属性
或者
state="readonly""
你要设置为只读不用去编辑它,为什么不用Label啊

追问

因为Text可以和Scrollbar绑定,Label绑定不了
我找到方法了
如何使得一个 Text 只读,因为设置 state="disabled" 之后,代码中也无法插入和修改文本。
解决方案:
绑定键盘输入,取消所有的输入。
实现方式:
w = Tkinter.Text(master)
w.bind("", lambda e : "break")
# 事件处理脚本返回 "break" 会中断后面的绑定,所以键盘输入不会被插入到文本框

追答

噢 噢

追问

呵呵,我知道python有很多GUI可以选择,但我想从基础的Tkinter开始学习
还是非常谢谢你!
再问下,有没有实时获取Text的文本和覆盖设置文本的,就是比如之前是aa,现在我要让它变成bb,而不是aabb,,"textvariable“试过不行

追答

你先把之前的清除,然后再insert新的值,删除好像用:
t.delete(1.0,END)
t是你的这个
t = Text(root)

参考技术A 没想到国内还有用tkinter的,看来是技术党,路过帮顶!tkinter中每个控件都有一个variable变量,这个变量发生变化时,控件的内容就会变化,一楼已经说了追问

_tkinter.TclError: unknown option "-textvariable"
Text控件的variable变量是啥?

追答

刚刚查了下文档,这个Text居然木有textvariable。。。。。。

本回答被提问者和网友采纳

Python GUI编程(Tkinter)Label控件

import tkinter

win = tkinter.Tk()
win.title("sunck")
win.geometry("400x400+200+20")

‘‘‘
Label:标签控件可以显示文本
‘‘‘
#win 父窗体
#text 显示的文本内容
#bg 背景色
#fg 字体颜色
#wraplength 指定text文本中多宽进行换行
#justify 设置换行后的对齐方法
#anchor 位置 n北 e东 s南 w西 center居中 ne se sw nw
label = tkinter.Label(win,
text="sunck",
bg="blue",
fg="red",
font=("黑体", 20),
width=10,
height=4,
wraplength=100,
justify="left",
anchor="center")

#显示出来
label.pack()
win.mainloop()

以上是关于python tkinter的Text控件,如何实现插入文本后将光标自动移动到行尾的主要内容,如果未能解决你的问题,请参考以下文章

Tkinter制作简单的python编辑器

Python GUI编程(Tkinter)Label控件

python tkinter怎么让顶层界面有scrollbar

Python Tkinter 基础控件学习

python--tkinter(图形开发界面)

[Tkinter 教程10] Text 控件