python中tkinter用法(一)

简介: python中tkinter用法(一)

内容一


.Label()


import tkinter as tk
app = tk.Tk()        # 实例化Tk
app.title("Demo")    # 设置标题
theLabel = tk.Label(app, text="我的第二个窗口程序!") # 显示文本
theLabel.pack()      # 自动调节尺寸
app.mainloop()       # 窗口的主事件循环,最后一句



.Button()


import tkinter as tk
class APP:
    """封装成类"""
    def __init__(self, master):
        frame = tk.Frame(master)
        # 设置在左边,x轴间距10,Y轴一样
        frame.pack(side=tk.LEFT, padx=10, pady=10)
        # 设置按钮,“打招呼”,蓝色按钮字体,黑色背景
        self.hi_there = tk.Button(frame, text="打招呼", fg="blue",
                                  command=self.say_hi, bg="black")
        self.hi_there.pack()  # 自动调节尺寸
    def say_hi(self):
        print("搭嘎好")
root = tk.Tk()   # Tk实例
app = APP(root)  # 类实例
root.mainloop()  # 结尾语句



按下后


内容二


from tkinter import *  # 导入Tk里面的所有
root = Tk()   # 创建实例
# 左边的字
textLabel = Label(root,
                  text="胡珍珍\n打架吗?",
                  justify=LEFT,
                  padx=10)
textLabel.pack(side=LEFT)
# 右边的图片
photo = PhotoImage(file="18.gif")
imgLabel = Label(root, image=photo)
imgLabel.pack(side=RIGHT)
mainloop()



from tkinter import *  # 导入Tk里面的所有
root = Tk()
photo = PhotoImage(file="18.gif")
theLabel = Label(root, text="猪",
                 justify=LEFT,
                 image=photo,
                 compound=CENTER,
                 font="楷体, 20",
                 fg="red")
theLabel.pack()
mainloop()



frame控件


frame控件是将窗口分成好几个小模块,然后每个小模块中添加控件。


也就是将窗口合理的布局


from tkinter import *  # 导入Tk里面的所有
def callback():
    var.set("谁怕谁")
root = Tk()
frame1 = Frame(root)
frame2 = Frame(root)
var = StringVar()  # 创建实例
# 左边的字,frame1
var.set("小黑黑\n打架吗?")
textLabel = Label(frame1,
                  textvariable=var,
                  justify=LEFT)
textLabel.pack(side=LEFT)
# 右边的图
photo = PhotoImage(file="18.gif")
imgLabel = Label(frame1, image=photo)
imgLabel.pack(side=RIGHT)
# 下边的按钮
theButton = Button(frame2, text="打", command=callback)  # 按下显示谁怕谁
theButton.pack()    # 自动调整尺寸
frame1.pack(padx=10, pady=10)
frame2.pack(padx=10, pady=10)
mainloop()




内容三


from tkinter import *
root = Tk()    # 创建root窗口
v = IntVar()
c = Checkbutton(root, text="测试一下", variable=v)
c.pack()
l = Label(root, textvariable=v)  # 选中为1
l.pack()
mainloop()




from tkinter import *
root = Tk()    # 创建root窗口
GIRLS = ["huzhu", "大猪", "zhu", "猪"]
v = []
for girl in GIRLS:
    v.append(IntVar())
    b = Checkbutton(root, text=girl, variable=v[-1])
    b.pack(anchor=W)  # W左对齐按钮
mainloop()



实现单选


from tkinter import *
root = Tk()    # 创建root窗口
v = IntVar()
Radiobutton(root,
            text="One",
            variable=v,
            value=1).pack(anchor=W)
Radiobutton(root,
            text="Two",
            variable=v,
            value=2).pack(anchor=W)
Radiobutton(root,
            text="Three",
            variable=v,
            value=3).pack(anchor=W)
mainloop()



from tkinter import *
root = Tk()    # 创建root窗口
LANGS = [
    ("python", 1),
    ("Perl", 2),
    ("Ruby", 3),
    ("Lua", 4)]
v = IntVar()
v.set(1)
for lang, num in LANGS:
    b = Radiobutton(root,
                    text=lang,
                    variable=v,
                    value=num,
                    indicatoron=False)
    b.pack(fill=X)
mainloop()



from tkinter import *
root = Tk()    # 创建root窗口
group = LabelFrame(root, text="最好的语言是?",
                   padx=5, pady=5)
group.pack(padx=10, pady=10)
LANGS = [
    ("python", 1),
    ("Perl", 2),
    ("Ruby", 3),
    ("Lua", 4)]
v = IntVar()
for lang, num in LANGS:
    b = Radiobutton(group,
                    text=lang,
                    variable=v,
                    value=num)
    b.pack(anchor=W)
mainloop()



内容四


from tkinter import *
root = Tk()
"""输入框"""
e = Entry(root)
e.pack(padx=20, pady=20)
e.delete(0, END)          # 清空输入框内容
e.insert(0, "默认文本...")  # 插入
mainloop()



from tkinter import *
root = Tk()
Label(root, text="作品:").grid(row=0, column=0)  # 第0行第0列
Label(root, text="作者:").grid(row=1, column=0)  # 第1行第0列
e1 = Entry(root)
e2 = Entry(root)
e1.grid(row=0, column=1, padx=10, pady=5)
e2.grid(row=1, column=1, padx=10, pady=5)
def show():
    print("作品:《%s》" % e1.get())
    print("作者:《%s》" % e2.get())
Button(root, text="获取信息", width=10, command=show)\
    .grid(row=3, column=0, sticky=W, padx=10, pady=5)  # W左边
Button(root, text="退出", width=10, command=root.quit)\
    .grid(row=3, column=1, sticky=E, padx=10, pady=5)  # E右边
mainloop()




from tkinter import *
root = Tk()
Label(root, text="账号:").grid(row=0, column=0)  # 第0行第0列
Label(root, text="密码:").grid(row=1, column=0)  # 第1行第0列
v1 = StringVar()
v2 = StringVar()
e1 = Entry(root, textvariable=v1)
e2 = Entry(root, textvariable=v2, show="*")
e1.grid(row=0, column=1, padx=10, pady=5)
e2.grid(row=1, column=1, padx=10, pady=5)
def show():
    print("账号:%s" % e1.get())
    print("密码:%s" % e2.get())
Button(root, text="芝麻开门", width=10, command=show)\
    .grid(row=3, column=0, sticky=W, padx=10, pady=5)  # W左边
Button(root, text="退出", width=10, command=root.quit)\
    .grid(row=3, column=1, sticky=E, padx=10, pady=5)  # E右边
mainloop()




from tkinter import *
master = Tk()
def test():
    if e1.get() == "小甲鱼":   # 输入的内容为小甲鱼的话
        print("正确!")
        return True
    else:
        print("错误!")
        e1.delete(0, END)  # 清空输入框
        return False
v = StringVar()
e1 = Entry(master, textvariable=v,
           validate="focusout", validatecommand=test)  # 焦点移出的时候
e2 = Entry(master)
e1.pack(padx=10, pady=10)
e2.pack(padx=10, pady=10)
mainloop()




from tkinter import *
master = Tk()
v = StringVar()
def test1():
    if e1.get() == "小甲鱼":   # 输入的内容为小甲鱼的话
        print("正确!")
        return True
    else:
        print("错误!")
        e1.delete(0, END)  # 清空输入框
        return False
def test2():
    print("我被调用了......")
    return True
e1 = Entry(master, textvariable=v, validate="focusout",
           validatecommand=test1, invalidcommand=test2)
e2 = Entry(master)
e1.pack(padx=10, pady=10)
e2.pack(padx=10, pady=10)
mainloop()





from tkinter import *
master = Tk()
v = StringVar()
def test(content, reason, name):
    if e1.get() == "小甲鱼":   # 输入的内容为小甲鱼的话
        print("正确!")
        print(content, reason, name)
        return True
    else:
        print("错误!")
        print(content, reason, name)
        return False
testCMD = master.register(test)
e1 = Entry(master, textvariable=v, validate="focusout",
           validatecommand=(testCMD, '%P', '%v', '%W'))
e2 = Entry(master)
e1.pack(padx=10, pady=10)
e2.pack(padx=10, pady=10)
mainloop()




计算器


from tkinter import *
master = Tk()
frame = Frame(master)
frame.pack(padx=10, pady=10)
v1 = StringVar()
v2 = StringVar()
v3 = StringVar()
def test(content):
    return content.isdigit()  # 返回数字
testCMD = master.register(test)
e1 = Entry(frame, width=10, textvariable=v1, validate="key",
           validatecommand=(testCMD, '%P')).grid(row=0, column=0)
Label(frame, text="+").grid(row=0, column=1)
e2 = Entry(frame, width=10, textvariable=v2, validate="key",
           validatecommand=(testCMD, '%P')).grid(row=0, column=2)
Label(frame, text="=").grid(row=0, column=3)
e3 = Entry(frame, width=10, textvariable=v3, state="readonly")\
    .grid(row=0, column=4)
def calc():
    result = int(v1.get()) + int(v2.get())
    v3.set(str(result))
Button(frame, text="计算结果", command=calc).grid(row=1, column=2, pady=5)
mainloop()



参考博客


Label参考博客


参考博客一


参考博客二


frame参考博客


参考博客三

目录
相关文章
|
3月前
|
Python
python基本用法
【9月更文挑战第5天】python基本用法
52 7
|
1月前
|
数据可视化 开发者 Python
Python GUI开发:Tkinter与PyQt的实战应用与对比分析
【10月更文挑战第26天】本文介绍了Python中两种常用的GUI工具包——Tkinter和PyQt。Tkinter内置于Python标准库,适合初学者快速上手,提供基本的GUI组件和方法。PyQt基于Qt库,功能强大且灵活,适用于创建复杂的GUI应用程序。通过实战示例和对比分析,帮助开发者选择合适的工具包以满足项目需求。
95 7
|
2月前
|
缓存 测试技术 开发者
深入理解Python装饰器:用法与实现
【10月更文挑战第7天】深入理解Python装饰器:用法与实现
18 1
|
2月前
|
传感器 大数据 数据处理
深入理解Python中的生成器:用法及应用场景
【10月更文挑战第7天】深入理解Python中的生成器:用法及应用场景
53 1
|
2月前
|
存储 大数据 Python
案例学Python:filter()函数的用法,高级!
`filter()`函数是Python中处理序列数据的强大工具,它允许我们高效地根据条件过滤元素。通过结合匿名函数、常规函数或直接利用Python的内置逻辑,`filter()`提供了灵活且高效的过滤机制,尤其在大数据处理和内存敏感的应用中展现出其价值。掌握 `filter()`的使用,不仅能提升代码的可读性和效率,还能更好地适应Python的函数式编程风格。
39 2
|
3月前
|
前端开发 Python
python之【Tkinter模块】
python之【Tkinter模块】
45 5
|
3月前
|
Python
Python中正则表达式(re模块)用法详解
Python中正则表达式(re模块)用法详解
41 2
|
3月前
|
人工智能 数据挖掘 开发者
Python用法
Python用法
30 10
|
2月前
|
Python
深入了解Python中星号变量的特殊用法
深入了解Python中星号变量的特殊用法
26 0
|
2月前
|
PyTorch 测试技术 算法框架/工具
Python中Thop库的常见用法和代码示例
肆十二在B站分享了关于THOP(Torch-OpCounter)的实战教学视频。THOP是一个用于计算PyTorch模型操作数和计算量的工具,帮助开发者评估模型复杂度和性能。本文介绍了THOP的安装、使用方法及基本用例,包括如何计算模型的FLOPs和参数量。
126 0