【tkinter学习笔记 - 2】:Entry的使用、Button按钮的使用

简介: 【tkinter学习笔记 - 2】:Entry的使用、Button按钮的使用

一、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接收的是字符型


fb6301145bd04843b4853fc8b1bf650d.png


运行结果


4e60d7d71546483b9c029cff83de73d2.png


点击登录后

82496ba865c94736b4934d418d35f37a.png



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设置按钮文字所在的位置

522e4e4e46c84433b572d65aa051199c.png


运行结果

ccba97b8beb14493b1555a02e9995f2b.png


点击图片和登录按钮都会弹出如下窗口

f3961736d62f49088751ea43a18b08c3.png


相关文章
pywintypes.com_error: (-2147221005, ‘无效的类字符串‘, None, None)
pywintypes.com_error: (-2147221005, ‘无效的类字符串‘, None, None)
2239 0
pywintypes.com_error: (-2147221005, ‘无效的类字符串‘, None, None)
|
Python
python字符串常用操作方法
python字符串常用操作方法
|
SQL 关系型数据库 Go
【Go语言专栏】Go语言中的数据库操作基础
【4月更文挑战第30天】本文介绍了Go语言中使用`database/sql`包与SQLite数据库交互的基础,包括导入包、建立连接、创建表、插入、查询、更新和删除数据。还涉及事务处理和错误处理,强调了错误检查的重要性。通过示例代码,展示了如何在Go中执行常见的数据库操作。更多学习资源可参考Go语言官方文档和SQLite官方文档。
518 0
|
Shell 数据安全/隐私保护 Python
Tkinter:文本框Entry
Tkinter:文本框Entry
|
算法 计算机视觉 异构计算
基于FPGA的图像一维FFT变换IFFT逆变换verilog实现,包含tb测试文件和MATLAB辅助验证
```markdown ## FPGA 仿真与 MATLAB 显示 - 图像处理的 FFT/IFFT FPGA 实现在 Vivado 2019.2 中仿真,结果通过 MATLAB 2022a 展示 - 核心代码片段:`Ddddddddddddddd` - 理论:FPGA 实现的一维 FFT/IFFT,加速数字信号处理,适用于高计算需求的图像应用,如压缩、滤波和识别 ```
|
JavaScript
《SAP后勤模块实施攻略—SAP在生产、采购、销售、物流中的应用》——第3章 MRP简介 3.1 MRP运行的简要说明
本节书摘来自华章计算机《SAP后勤模块实施攻略—SAP在生产、采购、销售、物流中的应用》一书中的第3章,第3.1节,作者 乐立骏,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
5074 0
|
SQL 存储 消息中间件
芒果 TV 基于 Flink 的实时数仓建设实践
基于 Flink 技术的特点,芒果 TV 在未来的数仓建设中将注重实现湖仓一体的架构,以实现对数据的全面管理和利用。
18321 35
芒果 TV 基于 Flink 的实时数仓建设实践
《电路/电路原理》—戴维宁(南)定理实战演练
《电路/电路原理》—戴维宁(南)定理实战演练
1809 1
《电路/电路原理》—戴维宁(南)定理实战演练
|
SQL 数据库连接 数据库
java.sql.SQLTimeoutException: ORA-01013: 用户请求取消当前的操作
java.sql.SQLTimeoutException: ORA-01013: 用户请求取消当前的操作
871 0
java.sql.SQLTimeoutException: ORA-01013: 用户请求取消当前的操作