专栏首页AzMarkPython 学习之 Tkinter「上 」

Python 学习之 Tkinter「上 」

阅读文本大概需要 6.6 分钟

最近在跟着学做一个简单的银行系统,做界面要用到 GUI「 图形用户界面编程 」,所以今天先为大家介绍一下相关的知识,很有趣,大家看完后练下手。

百度百科以及查阅的资料介绍:

Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 。Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行。

Python 支持多种图形界面的第三方库,包括:Tk、wxWidgets、Qt、GTK 等等。但是 Python 自带的库是支持 Tk 的 Tkinter ,使用 Tkinter ,无需安装任何包,就可以直接使用。我们编写的 Python 代码会调用内置的 Tkinter,Tkinter 封装了访问 Tk 的接口;Tk 是一个图形库,支持多个操作系统,使用Tcl 语言开发;Tk 会调用操作系统提供的本地 GUI 接口,完成最终的 GUI。

创建一个简单窗口

import tkinter

# 创建主窗口
win = tkinter.Tk()

win.title("Mark")  # 标题
win.geometry("400x400+400+200")  # 大小和位置

# 进入消息循环,显示窗口界面
win.mainloop()

标签控件

# 该代码块位于 win.mainloop() 之前,先将组件加载到窗口上,再显示窗口界面

label = tkinter.Label(win, text="To be a better man !", bg="blue", fg="white", font=("黑体", 20), width=10, height=4, wraplength=50, justify="left", anchor="center")

label.pack()  # 加载、显示标签

按钮控件

def f():
    print("To be a better man !")

# 绑定事件,点击按钮控制台输出语句
btn1 = tkinter.Button(win, text="点击1", command=f, width=10, height=2)
btn1.pack()

# 匿名函数输出打印语句
btn2 = tkinter.Button(win, text="点击2", command=lambda: print("To make right decisions !"))
btn2.pack()

# 退出窗口
btn3 = tkinter.Button(win, text="退出", command=win.quit)
btn3.pack()

输入控件 I

# 输入控件,用于显示简单的文本内容

entry = tkinter.Entry(win, show="*")  # show="*" 密文显示
entry.pack()

输入控件 II

# 为控件绑定变量

v = tkinter.Variable()
entry = tkinter.Entry(win, textvariable=v)
entry.pack()

# v 代表输入框这个对象,设置默认值
v.set("To be a better man !")

# 获取输入控件的值,输出在控制台
print(v.get())
print(entry.get())

例:点击按钮输出输入框的内容

def showInfo():
    print(entry.get())

entry = tkinter.Entry(win)
entry.pack()

btn = tkinter.Button(win, text="点击", command=showInfo)
btn.pack()

带滚动条的 Text 控件

t = tkinter.Text(win, width=60, height=10)
sc = tkinter.Scrollbar()  # 滚动条

# side 控件放置在窗体的那一侧,fill 填充方向
sc.pack(side=tkinter.RIGHT, fill=tkinter.Y)
t.pack(side=tkinter.LEFT, fill=tkinter.Y)

# 关联文本框和滚动条
sc.config(command=t.yview)
t.config(yscrollcommand=sc.set)

s = '''Everyone has his own understanding of young,it is a period of time of
beauty and wonders,only after you have experienced the sour ,sweet ,
bitter and salty can you really become a person of significance.there
time of young is limited,it may pass by without your attention,and
when you discover what has happened ,it is always too late.grasping
the young well means a better time is waiting for you in the near future,
or the situation may be opposite .Having a view on these great men in the history
of human being,they all made full use of their youth time ,to do things that are
useful to society,to the whole mankind,and as a consequence ,they are remembered by
later '''

t.insert(tkinter.INSERT, s)

复选框 Checkbutton

def update():
    message = ""
    if h1.get() is True:
        message += "Money\n"
    if h2.get() is True:
        message += "Power\n"
    if h3.get() is True:
        message += "Position\n"

    # 清除 text 中的所有内容
    t.delete(0.0, tkinter.END)
    
    # 复选框选中后,将其对应内容写到文本框中
    t.insert(tkinter.INSERT, message)

h1 = tkinter.BooleanVar()
c1 = tkinter.Checkbutton(win, text="Money", variable=h1, command=update)
c1.pack()

h2 = tkinter.BooleanVar()
c2 = tkinter.Checkbutton(win, text="Power", variable=h2, command=update)
c2.pack()

h3 = tkinter.BooleanVar()
c3 = tkinter.Checkbutton(win, text="Position", variable=h3, command=update)
c3.pack()

t = tkinter.Text(win, width=60, height=6)
t.pack()

单选框

def update():
    print(v.get())

# 注意:一组单选框要绑定同一个变量
v = tkinter.IntVar()

r1 = tkinter.Radiobutton(win, text="apple", value=1, variable=v, command=update)
r1.pack()

r2 = tkinter.Radiobutton(win, text="orange", value=2, variable=v, command=update)
r2.pack()

本文分享自微信公众号 - Python梦工厂(AzMark950831)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python 学习之 Tkinter「下」

    Python技术与生活认知的分享
  • Matplotlib 系列之「Legend 图例」

    Matplotlib 的 Legend 图例就是为了帮助我们展示每个数据对应的图像名称,更好的让读者认识到你的数据结构。

    Python技术与生活认知的分享
  • Python学习之面向对象

    Python技术与生活认知的分享
  • Python 学习之 Tkinter「上 」

    ,正好我的知识星球球友:知识星球:Python绿色通道 投稿来了,他的公众号名称「Python梦工厂」点击原文可以查看他的文章。

    叫我龙总
  • mongodb 中的like 怎么使用LIKE模糊查询userName包含A字母的数据(%A%)LIKE模糊查询userName以字母A开头的数据(A%)

    一个会写诗的程序员
  • ECCV 2020 | 小米提出 Fair DARTS :公平的可微分神经网络搜索

    本文深度解读小米 AI 实验室 AutoML 团队(作者:初祥祥、周天宝、张勃、李吉祥)在可微分神经网络搜索(DARTS)方向的最新成果 Fair DARTS,...

    CV君
  • 我这样教儿子学编程、数学和艺术(一次STEAM教育的设想)

    STEAM教育理念我最欣赏的教育理念之一。它最早是美国政府提出的教育倡议,即科学(Science)、技术(Technology)、工程(Engineering)...

    一石匠人
  • 丰巢后撤,便宜了菜鸟驿站、京东快递柜?

    最近许多人取快递的时候发现,黄绿色的丰巢快递柜已经变成了红色的京东快递柜。这也让很多刚刚经历了丰巢收费风波的用户不禁产生疑问,京东不会要收更多的“管理费”吧。

    刘旷
  • RobotFrameWork接口设计规范

    继前面一章《RobotFramework环境搭建》介绍了在本地如何将接口自动化实施过程所需要的基础环境搭建好,在这里假设大家都已经知道环境如何搭建了,如果不清...

    测试开发技术
  • Html页面雪花效果的实现

    晓晨

扫码关注云+社区

领取腾讯云代金券