Python-GUI编程之tkinter的基础控件

tkinter是Python内置的标准GUI库,程序员可以使用tkinter类库快速方便的创建出GUI应用程序。

1、tkinter的导入

tkinter是内置在python安装包中的,无需再手动安装,直接导入即可使用。

import tkinter 
#这种方式导入,不能省略模块名tkinter

import tkinter as tk
#这种方式导入,模块名改用tk

from tkinter import *
#这种方式导入,不能省略模块名tkinter

2、创建窗口

 1 import tkinter
 2 
 3 # 创建窗口
 4 root = tkinter.Tk()
 5 
 6 # 设置窗口的标题
 7 root.title("第一个GUI编程")
 8 
 9 # 设置窗口的大小和位置
10 root.geometry("400x400+200+200") #是小写字母x
11 
12 # 进入消息循环
13 root.mainloop()

3、Label控件

label控件是标签控件,用于显示文本。

 1 import tkinter
 2 
 3 root = tkinter.Tk()
 4 root.title("第一个GUI编程")
 5 root.geometry("400x400+200+200")
 6 
 7 #label控件
 8 label = tkinter.Label(root,
 9                       text="hello word!",
10                       bg="black", fg="white",
11                       font=("黑体", 20),
12                       width=20,
13                       height=10)
14 #root:在当前窗口定义
15 # text:显示文本内容
16 # bg:背景颜色
17 # fg:字体颜色
18 # font:字体(有时候还要把字体的路径标注好)
19 
20 # 放置控件
21 label.pack()
22 
23 root.mainloop()

4、Entry控件

Entry控件是输入控件,用于显示单行文本内容。注意:"Entry"首字母要大写。

import tkinter

root = tkinter.Tk()
root.title("第一个GUI编程")
root.geometry("400x400+200+200")

# 文本显示方式
entry1 = tkinter.Entry(root, show="*")  #用*显示输入的内容,密码的输入
entry1.pack()

# 绑定变量
e = tkinter.Variable()  #e就代表输入框这个对象

# 为e设置值
e.set("abcdefghijklmn")

entry2 = tkinter.Entry(root, textvariable=e)
entry2.pack()

# 获取Entry中的数据
print(e.get())
print(entry2.get())

root.mainloop()

5、Text控件

Text控件是文本文件,用于显示多行文本内容。注意:"Text"首字母要大写。

import tkinter

root = tkinter.Tk()
root.title("yudanqu")
root.geometry("400x400+200+200")

# height表示的是显示的行数
text = tkinter.Text(root, width=12, height=4)
text.pack()

str = '床前明月光,\n疑是地上霜.\n举头望明月,\n低头思故乡.\n'
# 中文占两个字符

#将上面的文本内容插入到Text控件内
text.insert(tkinter.INSERT, str)

root.mainloop()

6、滚动条

当显示的行数不足以显示文本所有内容时,我们需要对文本控件创建一个滚动条(scroll)。滚动条常常与Text文件,Entry控件,列表框Listbox控件等组合在一起使用。

import tkinter

root = tkinter.Tk()
root.title("第一次GUI编程")

# 创建滚动条
scroll = tkinter.Scrollbar()

text = tkinter.Text(root, width=12, height=1)
# side代表滚动条放置的位置,fill用于填充
scroll.pack(side=tkinter.RIGHT, fill=tkinter.Y)
#文本控件放在滚动条的左侧
text.pack(side=tkinter.LEFT, fill=tkinter.Y)

# 把滚动条和文本控件组合在一起
scroll.config(command=text.yview)
text.config(yscrollcommand=scroll.set)
text.pack()

str = '床前明月光,\n疑是地上霜.\n举头望明月,\n低头思故乡.\n'

# 把上面的内容插入到文本控件内
text.insert(tkinter.INSERT, str)

root.mainloop()

7、Button控件

Button控件是按钮控件,在程序中显示为一个按钮,一般是和特定的函数结合使用。注意:"Button"首字母要大写。

import tkinter

# 特定的函数
def Hello():
    print("你好啊,要好好学习啊!")

root = tkinter.Tk()
root.title("第一个GUI编程")
root.geometry("400x400+200+200")

# 创建按钮
button1 = tkinter.Button(root, text="你好", command=Hello, width=10, height=10)
button1.pack()

# root代表当前Button对象
# text代表按钮的名字
# command代表按钮执行的命令
# width代表按钮的宽度
# height代表按钮的高度

button2 = tkinter.Button(root, text="按钮", command=lambda: print("Hello Word!"))
button2.pack()

button3 = tkinter.Button(root, text="退出", command=root.quit)
button3.pack()

root.mainloop()

 8、单选按钮Radiobutton控件

单选按钮Radiobutton控件用于实现单选功能。Radiobutton可以显示文本,也可以显示图片。

import tkinter

root = tkinter.Tk()
root.title("第一次GUI编程")
root.geometry("400x400+200+200")

def select():
    print(r.get())

r = tkinter.IntVar()

r1 = tkinter.Radiobutton(root,text="one",value=1,variable=r,command=select)
r1.pack()
r2 = tkinter.Radiobutton(root,text="two",value=2,variable=r,command=select)
r2.pack()

root.mainloop()

9、多选按钮Checkbutton控件

多选按钮Checkbutton控件,它可以实现多选功能。和单选按钮Radiobutton控件一样,可以显示文本,也可以显示图片。

import tkinter

root = tkinter.Tk()
root.title("GUI编程")
root.geometry("400x400+200+200")

def function():
    message = ""
    if a.get() ==True:
        message += "C++\n"
    if b.get() == True:
        message += "Java\n"
    if c.get() == True:
        message += "Python\n"

    # 清空text的内容
    text.delete(0.0, tkinter.END)
    text.insert(tkinter.INSERT, message)

# 绑定变量
a = tkinter.BooleanVar()
cb1 = tkinter.Checkbutton(root,text="C++",variable=a,command=function)
cb1.pack()

b = tkinter.BooleanVar()
cb2 = tkinter.Checkbutton(root,text="Java",variable=b,command=function)
cb2.pack()

c = tkinter.BooleanVar()
cb3 = tkinter.Checkbutton(root, text="Python", variable=c,command=function)
cb3.pack()

# 显示文本框
text = tkinter.Text(root, width=50, height=10)
text.pack()

root.mainloop()

10、Listbox列表框控件

Listbox列表控件用于显示多个项目,并且允许用户选择一个或多个项目。

import tkinter

root = tkinter.Tk()
root.title("GUI编程")
root.geometry("400x400+200+200")

# 单选操作
lb = tkinter.Listbox(root,selectmode=tkinter.BROWSE)
# 多选操作
# lb = tkinter.Listbox(root,selectmode=tkinter.MULTIPLE)
lb.pack()

list = ["B", "C", "E", "F", "G", "H"]
# 依次添加
for item in list:
    lb.insert(tkinter.END,item)

# 在列表的头部进行添加
lb.insert(tkinter.ACTIVE, "A")

# 把列表做为一个元素进行添加操作
# lb.insert(tkinter.END, ["I", "J"])

# 根据索引进行删除操作
# lb.delete(1,2)

# 选中
# lb.select_set(2,3)

# 取消选中
# lb.select_clear(2)

# 获取到列表中的元素个数
# print(lb.size())

# 根据索引获取数据
# print(lb.get(2,3))

# 判断一个选项是否被选中 返回True和False
# print(lb.selection_includes(3))

root.mainloop()

 

你可能感兴趣的:(Python-GUI编程之tkinter的基础控件)