首页
学习
活动
专区
工具
TVP
发布

什么是GUI编程?Python自带tkinter写的计算器酷不酷(20)

小朋友们好,大朋友们好!

我是猫妹,一名爱上Python编程的小学生。

今日主题

今天咱们学习下什么是GUI编程,Python自带的tkinter库,最后欣赏下tkinter编写的计算器。

GUI编程

什么是GUI编程呢?

GUI编程(Graphical User Interface),即用户图形界面编程。

比如咱们用的办公软件、上网软件等等都属于GUI编程。

和GUI编程相对应的,是非GUI方式运行(命令窗口)。

早期的DOS系统无界面,只有极少数人会使用。

后来的Windows系统,人人可上手使用。

GUI程序,使用方便,交互性好。

非GUI程序,运行高效。

tkinter简介

Python中GUI工具包有很多,比如tkinter、wxPython、PyQT、PyGTK、PySide等。

不同的工具包,各有千秋。

具体选择哪个,要根据使用场合来选择。

tkinter是Python官方GUI工具包,安装Python3.x后,会安装tkinter。

tkinter的语法和HTML相似。

想使用tkinter,只需要三步:

导入tkinter模块

创建窗口

进入循环

Label标签组件

可以用来显示文本或图片,语法如下:

label = tkinter.Label(root, text="文本内容")

label.pack()

label = tkinter.Label(root, image=图片对象)

label.pack()

Label常用属性

tkinter.PhotoImage用来创建一个图像对象。

compound可设置top、bottom、left、right、center,表示图片在文字的上下左右中。

如果要同时显示文字、图片,除了设置text和image外,compound也必须要设置。

除了自定义图片外,Label组件还为我们提供了内置图片。

语法为thinter.Label(root,bitmap="取值")

Button按钮组件

可以用鼠标点击,语法如下:

tkinter.Button(root, text="文本", command=函数名)

Checkbutton复选框

可以进行选择的框,可以选多个。语法如下:

tkinter.Checkbutton(root, text="", variable=取值)

text要显示的文本。

variable复选框的值。

下图中的v = tkinter.IntVar()表示定义了一个变量v。

v的值0或1是复选框是否被选中,0未被选中,1选中。

也可以不用0和1来表示是否选中,可以使用onValue和offValue来表示。

如果选项较多,可以使用列表和循环来实现。

anchor指定显示位置,九个方向(NSWS)(NW NE SE SW)(CENTER)。

单选按钮Radiobutton

单选框也就是单选按钮,语法为:

tkinter.Radiobutton(root, text="",value="", variable=取值)

text要实现的值,给用户看。

value值,给程序看。

variable动态存储value值,会随着value变化而变化。

如果有多个选项,可以使用for循环处理。

LabelFrame分组框

可以使用LabelFrame组件来对单选框或复选框进行分组。

语法为:

tkinter.LabelFrame(root, text="")

Entry文本框

单行文本框Entry语法为:

tkinter.Entry(root)

tkinter提供了三种布局组件的方法:pack,gird,place。

gird允许用户使用表格形式来管理组件的位置。

row=1,column=2表示第2行第3列。

可以使用Entry组件的get()获取输入值。

Listbox列表框

如果有多个选项,要么使用单选框Radiobutton,要么使用多选框Checkbutton。

但是,如果选择特别多呢?

比如12个月,这时用Listbox列表框比较合适。

计算器

最后,我们欣赏几款tkinter写的计算器吧!

怎么样?

挺漂亮吧?

网络上有许许多多的基于tkinter写的计算器程序,感兴趣的小伙伴不妨借鉴学习下。

好了,我们今天就学到这里吧!

我是猫妹,咱们下次见!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230401A00SIE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券