上文:Python的GUI选择——tkiner(上)
https://blog.csdn.net/EchoToMe/article/details/128875634?spm=1001.2014.3001.5501
我的框架放哪里?——pack&grid方法
在tkinter模块中,pack和grid方法都是对我们形成好的一个框架进行放置
由于pack方法在前文已经进行介绍了,所以这里着重介绍grid方法,其实grid方法比pack方法的用处更大
如果说在tkinter所有放置方法中只能选择一个进行学习,那么我会建议学习grid方法
先简单介绍一下grid方法的常见的几个参数:
(注意这里默认行和列为0的地方在页面的左上角)
参数名字 | 作用 |
---|---|
row | 表示这个框架所在的行 |
column | 表示这个框架所在的列 |
padx | 距离x轴的距离 |
pady | 距离y轴的距离 |
在这里可以简单的用代码做一个小演示: |
from tkinter import *
root = Tk()
b1 = Button(root,text="点赞").grid(row=0,column=0)
b2 = Button(root,text="关注").grid(row=1,column=0)
mainloop()
代码的成果如下:
DIY输入——Entry方法
这个方法是用来生成一个输入框的,可以在屏幕上进行输入,类似于下面这个截图:
下面是常见的Entry的参数:
参数名称 | 作用 |
---|---|
textvariable | 存储输入的内容 |
show | 输入后我们看到的样子 |
validatecommand | 满足validatecommand调用的函数 |
validate | 特殊的指令 |
下面我们用简单的代码进行演示:
from tkinter import *
root = Tk()
def callback():
print("hi")
e1 = Entry(root,validate="focusout",validatecommand=callback).pack()
mainloop()
当我们的焦点移出了这个组件的时候,我们就会发现在IDLE的执行模块上打印了一个hi
这里有的朋友就会问了,什么叫做焦点?
焦点
在tkinter中,焦点所在的位置表示自己可以控制的那个文本框,例如如果有上下两个Entry对象,当我们在对第一个Entry对象输入的时候,焦点就会在第一个Entry,我们可以用键盘的Tab键来转移焦点到第二个Entry窗口
Button的好兄弟——Listbox方法
Listbox方法和Button的多选方法是非常相似的,但是它作为一个直接的方法会更加的直接
下面先简单介绍一下常用的几个参数:
参数名称 | 参数作用 |
---|---|
height | 选项框最多可以放下多少行 |
x/yscrollcommand | 在x/y轴上形成一个滚动条 |
注意:在调用x/yscrollcommand的参数的时候,需要利用到一个Scrollbar的对象
这个对象是我们的主体滚动条,所以在代码的结尾还要对这个对象进行config修饰
下面我们结合简单的代码进行讲解:
from tkinter import *
root = Tk()
s = Scrollbar(root)
s.pack()
listbox = Listbox(root,yscrollcommand=s.set)
for i in range(10):
listbox.insert(END,i)
listbox.pack()
s.config(command=listbox.yview)
mainloop()
文字书写——Text方法
这个方法可以在界面上形成一个文本框,这个文本框不仅仅可以让用户输入字,还可以进行各种插件的补充
先对Text方法的常见参数:
参数名词 | 参数作用 |
---|---|
width | 表示文本框中每一行最多输入多少个字符 |
height | 表示文本框中最多有多少行 |
Text方法的子方法:
text.insert方法,这个方法可以在用户输入前自动在文本框中生成
例如:text.insert(INSERT,“I love \n”) 其中第一个INSERT参数表示的是光标所在的位置
Text方法中组件的插入:
按钮组件的插入
需要注意的是按钮插件的插入的时候,Button的root参数不可以传入Tk实例化好的参数,而是一个Text对象
下面用简单的代码来演示:
from tkinter import *
root = Tk()
text = Text(root,width=30,height=10)
text.pack()
def callback():
print("hi")
b = Button(text,text="赞",command=callback)
b.pack()
text.window_create(INSERT,window=b)
mainloop()
Text方法的伴生伙伴——Tag方法
Tag方法是针对Text方法中输入的文字的一个子方法,主要是用来修改和修饰Text方法中的文字
首先先认识Tag方法对Text方法中每一个字符的表示方法,利用的是A.B的一个表示方法,A表示行,B表示列
这个方法有很多子方法,下面对常见的子方法进行介绍:
tag_config()方法
这个方法可以直接对Text组件中的文字进行修改
多说无妨,直接用简单的代码进行演示:
text.tag_config("tag1",background="yellow",foreground="red")
这个地方的background方法是修改文字的背景色,foreground表示的是文字的字体颜色
tag_add()方法
对于这个方法的第一个参数是需要被tag_config修改的tag名字,后面的数字参数两两配对表示Text中被修改的范围
text.tag_add("tag1","1.7","1.12","1.14")