首页 > 编程语言 >Python基础入门学习笔记 069 GUI的终极选择:Tkinter6

Python基础入门学习笔记 069 GUI的终极选择:Tkinter6

时间:2023-08-23 11:44:52浏览次数:40  
标签:INSERT insert Python text GUI here 069 root 光标

Text组件

Text(文本)组件用于显示和处理多种任务。虽然该组件的主要目的是显示多行文本,但它常常也被用于作为简单的文本编辑器和网页浏览器使用。

实例1:插入内容

 1 from tkinter import *
 2 
 3 root = Tk()
 4 text = Text(root,width=30,height=2)
 5 text.pack()
 6 #INSERT索引表示插入光标当前的位置
 7 text.insert(INSERT,"I love\n")#光标当前的位置插入
 8 
 9 #END,对应Text组件的文本缓存区最后一个字符的下一个位置
10 text.insert(END,"FishC.com!")
11 
12 mainloop()

 实例2:插入image对象windows组件

 1 from tkinter import *
 2 
 3 def show():
 4     print("哟,我被点了一下~")
 5 
 6 root = Tk()
 7 text = Text(root,width=30,height=5)
 8 text.pack()
 9 
10 #INSERT索引表示插入光标当前的位置
11 text.insert(INSERT,"I love FishC.com!")#光标当前的位置插入
12 
13 #创建一个按钮
14 b1=Button(root,text="点我点我",command=show)
15 text.window_create(INSERT,window=b1)
16 
17 mainloop()

 实例3:单击按钮显示一张图片

 1 from tkinter import *
 2 
 3 def show():
 4     text.image_create(INSERT,image=photo)
 5 
 6 root = Tk()
 7 text = Text(root,width=30,height=50)
 8 text.pack()
 9 
10 #INSERT索引表示插入光标当前的位置
11 text.insert(INSERT,"I love FishC.com!")#光标当前的位置插入
12 
13 photo = PhotoImage(file='fishc.gif')
14 
15 #创建一个按钮
16 b1=Button(root,text="点我点我",command=show)
17 text.window_create(INSERT,window=b1)
18 
19 mainloop()

Indexer用法

实例1:“line.column”

 1 from tkinter import *
 2 
 3 root = Tk()
 4 text = Text(root,width=30,height=5)
 5 text.pack()
 6 
 7 #INSERT索引表示插入光标当前的位置
 8 text.insert(INSERT,"I love FishC.com!")#光标当前的位置插入
 9 #注意,行号从1开始,列号则从0开始
10 print(text.get(1.2,1.6))#获取第一行第2列到第一行第六列的数据
11 
12 mainloop()

实例2:“line.end”

行号加上字符串".end"格式表示为该行最后一个字符的位置

实例:

 1 from tkinter import *
 2 
 3 root = Tk()
 4 text = Text(root,width=30,height=5)
 5 text.pack()
 6 
 7 #INSERT索引表示插入光标当前的位置
 8 text.insert(INSERT,"I love FishC.com!")#光标当前的位置插入
 9 #注意,行号从1开始,列号则从0开始
10 print(text.get("1.2","1.end"))#获取第一行第2列到第一行第六列的数据
11 
12 mainloop()

Mask用法

mask(标记)通常是嵌入到Text组件文本中的不可见对象。事实上,Marks是指定字符间的位置,并跟随相应的字符一起移动。

实例:Mark事实上就是索引,用于表示位置

 1 from tkinter import *
 2 
 3 root = Tk()
 4 text = Text(root,width=30,height=5)
 5 text.pack()
 6 
 7 #INSERT索引表示插入光标当前的位置
 8 text.insert(INSERT,"I love FishC.com!")#光标当前的位置插入
 9 #注意,行号从1开始,列号则从0开始
10 text.mark_set("here","1.2")#设置光标位置为1.2
11 text.insert("here","插")
12 
13 mainloop()

 实例2:如果Mark前面的内容发生改变,Mark的位置也会跟着移动

 1 from tkinter import *
 2 
 3 root = Tk()
 4 text = Text(root,width=30,height=5)
 5 text.pack()
 6 
 7 #INSERT索引表示插入光标当前的位置
 8 text.insert(INSERT,"I love FishC.com!")#光标当前的位置插入
 9 #注意,行号从1开始,列号则从0开始
10 text.mark_set("here","1.2")#设置当前光标位置为1.2
11 text.insert("here","插")#执行后当前光标位置(Mark位置)变成了1.3
12 text.insert("here","入")
13 #text.insert("1.3","入")
14 
15 mainloop()

 实例3:如果Mark周围的文本被删除了,Mark仍然存在

 1 from tkinter import *
 2 
 3 root = Tk()
 4 text = Text(root,width=30,height=5)
 5 text.pack()
 6 
 7 #INSERT索引表示插入光标当前的位置
 8 text.insert(INSERT,"I love FishC.com!")#光标当前的位置插入
 9 #注意,行号从1开始,列号则从0开始
10 text.mark_set("here","1.2")#设置当前光标位置为1.2
11 text.insert("here","插")#执行后当前光标位置变成了1.3
12 text.delete("1.0",END)
13 text.insert("here","入")#here表示当前Mark的位置,如果Mark左边并没有数据则会插入到最左边
14 
15 mainloop()

例4:只有mark_unset()方法可以解除Mark的封印

 1 from tkinter import *
 2 
 3 root = Tk()
 4 text = Text(root,width=30,height=5)
 5 text.pack()
 6 
 7 #INSERT索引表示插入光标当前的位置
 8 text.insert(INSERT,"I love FishC.com!")#光标当前的位置插入
 9 #注意,行号从1开始,列号则从0开始
10 text.mark_set("here","1.2")#设置当前光标位置为1.2
11 text.insert("here","插")#执行后当前光标位置变成了1.3
12 text.mark_unset("here")
13 
14 text.delete("1.0",END)
15 text.insert("here","入")#here表示当前Mark的位置
16 
17 mainloop()

默认插入内容是插入到Mark左侧(就是说插入一个字符后,Mark向后移动了一个字符的位置)

实例5:插入内容到Mark的右侧

 1 from tkinter import *
 2 
 3 root = Tk()
 4 text = Text(root,width=30,height=5)
 5 text.pack()
 6 
 7 #INSERT索引表示插入光标当前的位置
 8 text.insert(INSERT,"I love FishC.com!")#光标当前的位置插入
 9 #注意,行号从1开始,列号则从0开始
10 text.mark_set("here","1.2")#设置当前Mark位置为1.2
11 text.mark_gravity("here",LEFT)
12 
13 text.insert("here","插")#执行后当前Mark位置变成了1.3
14 text.insert("here","入")#here表示当前Mark的位置
15 
16 mainloop()

标签:INSERT,insert,Python,text,GUI,here,069,root,光标
From: https://www.cnblogs.com/ybqjymy/p/17650794.html

相关文章

  • Python基础入门学习笔记 066 GUI的终极选择:Tkinter3
    实例1:Checkbutton组件1fromtkinterimport*23root=Tk()4#需要一个Tkinter变量,用于表示该按钮是否被选中5v=IntVar()6c=Checkbutton(root,text="测试一下",variable=v)78c.pack()9#如果被选中,那么变量v被赋值为1,否则为010#可以用个Label......
  • Pybind11:使用C++编写Python模块
    放假摆了一周了。看论文实在不是什么有意思的活。这两天研究了一下Pybind11的用法。使用C/C++和Python混合编程的想法很早就有了,在大一的一次比赛时曾经实践过(虽然不是我写的),当时获得了比较显著的性能提升。但是当时用的是Swig,据队友说Swig对于NumPy的支持极为阴间,当时调试花了好......
  • Python基础入门学习笔记 064 GUI的终极选择:Tkinter
    >>>importtkinter #Tkinter是python默认的GUI库,导入Tkinter模块>>> 实例1:1importtkinterastk23root=tk.Tk()#创建一个主窗口,用于容纳整个GUI程序4root.title("FishCDemo")#设置主窗口对象的标题栏56#添加一个Label组件,可以显示文本、图标或者图......
  • Python基础入门学习笔记 065 GUI的终极选择:Tkinter2
    实例1:Label组件显示文字与gif图片1#导入tkinter模块的所有内容2fromtkinterimport*34#创建主窗口5root=Tk()6#创建一个文本Label对象,文字为左对齐,离左边边框距离为107textLabel=Label(root,8text="您下载的影片含有未成年人......
  • Python基础入门学习笔记 048 魔法方法:迭代器
    迭代的意思类似于循环,每一次重复的过程被称为一次迭代的过程,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。提供迭代方法的容器称为迭代器(如序列(列表、元组、字符串)、字典等)。对一个容器对象调用iter()就得到它的迭代器,调用next()迭代器就会返回下一个值。入托迭代器没......
  • Python基础入门学习笔记 049 乱入:生成器
    所谓协同程序,就是可以运行的独立函数调用,函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重新开始。生成器可以暂时挂起函数,并保留函数的局部变量等数据,然后在再次调用它的时候,从上次暂停的位置继续执行下去。一个函数中如果有yield语句,则被定义为生成器。实例1:......
  • Python基础入门学习笔记 050 模块:模块就是程序
    什么是模块•容器->数据的封装•函数->语句的封装•类->方法和属性的封装•模块->模块就是程序命名空间爱的宣言:世界上只有一个名字,使我这样牵肠挂肚,像有一根看不见的线,一头牢牢系在我心尖上,一头攥在你手中,这个名字就叫做鱼C工作室计算机一班的小花……导入模块•......
  • Python学习 -- 类的继承
    类继承是面向对象编程中的重要概念,它允许我们创建一个新的类,通过继承已有的类的属性和方法,从而实现代码的重用和扩展。Python作为一门面向对象的编程语言,提供了强大而灵活的类继承机制。本篇博客将深入探讨Python中类继承的概念,通过详细的代码实例演示其用法。基本的类继承首先,让我......
  • Python基础入门学习笔记 039 类和对象:拾遗
    组合(将需要的类一起进行实例化并放入新的类中)实例:1classTurtle:2def__init__(self,x):3self.num=x45classFish:6def__init__(self,x):7self.num=x89classPool:10def__init__(self,x,y):11self.tu......
  • Python-OpenCV双目测距代码实现以及参数解读
    一、双目相机拍照后使用Matlab进行双目标定必看:USB双目相机的具体标定过程:https://blog.csdn.net/qq_40700822/article/details/124251201?spm=1001.2014.3001.5501主要参考:https://blog.csdn.net/dulingwen/article/details/98071584感谢大佬的分享!!!(*≧ω≦)!!二、标定后生成......