专栏首页python3tkinter -- Text(1)

tkinter -- Text(1)

创建第一个 Text

代码:

import tkinter as tk
root = tk.Tk()
t = tk.Text(root)
t.pack()
root.mainloop()

效果:

root 中含有一 Text 控件,可以在这个控件内输入文本,可以使用 Ctrl+C/V 向 Text 内添加剪切板上的内容(文本),不接受 Ctrl+Z 执行操作

向 Text 中添加文本

代码:

import tkinter as tk
root = tk.Tk()
t = tk.Text(root)
# 向第一行,第一列添加文本0123456789
t.insert(1.0, '0123456789')
# 向第一行,第一列添加文本ABCDEFGHIJ
t.insert(1.0, 'ABCDEFGHIJ')
t.pack()
root.mainloop()

效果:

insert 的第一个参数为索引;第二个为添加的内容

使用 \n来换行

代码:

import tkinter as tk
root = tk.Tk()
t = tk.Text(root)
# 向第一行,第一列添加文本0123456789
t.insert(1.0, '0123456789\n')

# 向第一行,第一列添加文本ABCDEFGHIJ
t.insert(2.0, 'ABCDEFGHIJ')
t.pack()
root.mainloop()

效果:

使用内置的 mark 控制添加位置

mark 是用来表示在 Text 中位置的一类符号

演示了内置的 mark:INSERT/CURRENT/END/SEL_FIRST/SEL_LAST 的用法

几个内置的 mark:

INSERT: 光标的插入点

CURRENT: 鼠标的当前位置所对应的字符位置

END: 这个 Text buffer 的最后一个字符

SEL_FIRST: 选中文本域的第一个字符,如果没有选中区域则会引发异常

SEL_LAST:选中文本域的最后一个字符,如果没有选中区域则会引发 异常

代码:

import tkinter as tk
root = tk.Tk()
t = tk.Text(root)
# 向Text中添加10行文本
for i in range(1, 11):
    t.insert(1.0, '0123456789\n')
# 定义各个Button的回调函数,
# 这些函数使用了内置的mark:INSERT/CURRENT/END/SEL_FIRST/SEL_LAST
def insertText():
    t.insert(tk.INSERT, 'py3study.com')
def currentText():
    t.insert(tk.CURRENT, 'py3study.com')
def endText():
    t.insert(tk.END, 'py3study.com')
def selFirstText():
    t.insert(tk.SEL_FIRST, 'py3study.com')
def selLastText():
    t.insert(tk.SEL_LAST, 'py3study.com')

tk.Button(root, text='insert py3study.com ', command=insertText).pack(fill='x')
tk.Button(root, text='current py3study.com', command=currentText).pack(fill='x')
tk.Button(root, text='end py3study.com', command=endText).pack(fill='x')
tk.Button(root, text='sel_first py3study.com', command=selFirstText).pack(fill='x')
tk.Button(root, text='sel_last py3study.com', command=selLastText).pack(fill='x')
t.pack()
root.mainloop()

效果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python图形编程探索系列-01-初级

    设计一个主窗口,在其中添加三个标签和三个按钮,当点击按钮时,对标签的内容和色彩进行修改。

    py3study
  • tkinter -- CheckButton

    可以表示两种状态:On 和 Off,可以设置回调函数,每当点击此按钮时回调函数被调用

    py3study
  • Python 运行时捕获 Warning

    1、http://stackoverflow.com/questions/15933741/how-do-i-catch-a-warning-in-python...

    py3study
  • 如何阅读一个前向推理框架?以NCNN为例。

    CNN从15年的ResNet在ImageNet比赛中大放异彩,到今天各种层出不穷的网络结构被提出以解决生活中碰到的各种问题。然而,在CNN长期发展过程中,也伴随...

    BBuf
  • 奇虎360服务端开发岗面筋,自行了解一下

    一面,约的10点,面试官老哥10:30左右才来,不过人还不错,没有为难我大学生,整体上面了40分钟左右: 

    牛客网
  • go语言性能建议

    songleo
  • Java中的多线程

    1、 线程中的主要方法     a) isAlive() 判断线程是否还活着,即线程是否未终止     b) getPriority() 获得线程的优先级   ...

    lizelu
  • 从故障发生的角度看raft算法

    raft算法是一种保证数据高可用的一致性算法,它和 Paxos 算法 相比,提供了相似的功能和性能,但是提供了更好的阅读成本,因此在推出之后便受到了业界较大的欢...

    浅水游鱼
  • 如何发现Web App Yummy Days的安全漏洞?

    作为一个金融Web应用的开发人员,我对安全问题一直尤为关注。在过去的两年里,我参与的一些Web应用在进入生产模式之前,都会经过全面严格的安全检查,以确保它们在完...

    FB客服
  • 你所不能不知道的CNN

    说起CNN,最初人们想到的都是某电视台,但等过几年,人们想起的多半是深度学习了。 应该说, CNN是这两年深度学习风暴的罪魁祸首, 自2012年, 正是它让打入...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券