一、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设置按钮文字所在的位置
运行结果
点击图片和登录按钮都会弹出如下窗口