目录
一、Entry单行文本框
Entry用来接收一行字符串的控件。如果用户输入的文字长度长于 Entry 控件的宽度时,文字会自动向后滚动。如果想输入多行文本,需要使用 Text 控件
代码演示
import tkinter as tk
from tkinter import *
from tkinter import messagebox
class Application(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self,master)
self.master = master
self.pack()
self.createWidget()
def createWidget(self):
'''创建登录界面的组件'''
# 创建登录框
self.label01 = Label(self, text='用户名')
self.label01.pack()
# StringVar变量绑定到指定的组件
# StringVar变量的值发生改变,组件内容也变化
# 组件内容发生变化,StringVar变量的值也发生变化
v1 = StringVar()
self.entry01 = Entry(self, textvariable=v1)
self.entry01.pack()
print(v1.get()) # 获取输入的用户名并打印
# 创建密码框
self.label02 = Label(self, text='密码')
self.label02.pack()
v2 = StringVar()
self.entry02 = Entry(self, textvariable=v2, show='*')
self.entry02.pack()
Button(self,text='登录', command=self.login).pack()
def login(self):
username = self.entry01.get()
pwd = self.entry02.get()
if username=='QinAfeng' and pwd=='123456':
messagebox.showinfo('TK世界', '恭喜你登录成功')
else:
messagebox.showinfo('TK世界', '登录失败!用户名或密码错误!')
if __name__ == '__main__':
root = Tk()
root.geometry('200x200+200+300')
root.title('Entry实现登录')
app = Application(root)
root.mainloop()
BooleanVar:表示Entry接受的是布尔类型
IntVar:表示Entry接收的是整型
DoubleVar:表示Entry接收的是浮点型
StringVar:表示Entry接收的是字符型
- 运行结果
- 点击登录后
Button按钮的使用
Button(按钮)用来执行用户的单机操作,Button可以包含文本,也可以包含图像,按钮被单击后自动调用对应事件绑定的方法。
代码演示
import tkinter as tk
from tkinter import *
from PIL import Image, ImageTk
from tkinter import messagebox
class Application(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self,master)
self.master = master
self.pack()
self.createWidget()
def createWidget(self):
self.btn01 = Button(self, text='登录', width=6, height=3,
anchor=NE, command=self.login)
self.btn01.pack()
global img
photo = Image.open('1.gif')
photo = photo.resize((100,100)) # 规定图片大小
img = ImageTk.PhotoImage(photo)
self.btn02 = Button(self, image=img, command=self.login)
self.btn02.pack()
# self.btn02.config(state="disabled") # 设置按钮为禁用
def login(self):
messagebox.showinfo('登录成功', '欢迎来到Python世界')
if __name__ == '__main__':
root = Tk()
root.geometry('200x200+200+300')
root.title('Button按钮设置')
app = Application(root)
root.mainloop()
anchor设置按钮文字所在的位置
- 运行结果
- 点击图片和登录按钮都会弹出如下窗口