实验10简单计算器.docx

上传人:b****7 文档编号:9440034 上传时间:2023-02-04 格式:DOCX 页数:14 大小:184.76KB
下载 相关 举报
实验10简单计算器.docx_第1页
第1页 / 共14页
实验10简单计算器.docx_第2页
第2页 / 共14页
实验10简单计算器.docx_第3页
第3页 / 共14页
实验10简单计算器.docx_第4页
第4页 / 共14页
实验10简单计算器.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

实验10简单计算器.docx

《实验10简单计算器.docx》由会员分享,可在线阅读,更多相关《实验10简单计算器.docx(14页珍藏版)》请在冰豆网上搜索。

实验10简单计算器.docx

实验10简单计算器

实验十简单计算器

【实验名称】

简单计算器

【实验目的】

1、了解常用的GUI;

2、熟悉tkinter布局方法;

3、熟悉tkinterAPI使用;

4、编写简单的GUI程序

【实验要求】

1、Tkinter模块函数使用;

2、熟悉tkinter布局方法;

3、tkinter事件和信号连接

【背景描述】

本节将对图形用户界面(GraphicalUserInterface,GUI)编程进行简要的介绍。

无论你刚

接解本领域,还是希望学到更多相关知识,亦或是想要看到Python中是如何实现的,本章都

会正合你意。

这短短的一章不可能展示所有GUI应用开发的东西,但是会为你奠定一个坚实

的基础。

我们将主要使用的GUI工具包是Python默认的GUI库Tk,通过Python的接口Tkinter

(“Tkinterface”的缩写)可以访问Tk。

Tk并不是最新和最好的,也没有包含最强大的GUI构建模块集,但是它足够易用,你可以使用它构建能够运行在大多数平台下的GUI。

【知识准备】

掌握和熟悉Python基本语法,常见数据类和操作,会用pdb调试Python程序。

【实验设备】

Windows或Linux或MacOS的操作系统的计算机。

本实验提供win7系统。

【实验说明】

为了开发方便,本人用IDLE做为实验教学和模拟环境,不再在CMD下操作。

最好有点GUI程序知识。

【实验环境】

系统:

Windows764位旗舰版,

Python版本:

Python3.5.3

开发工具:

IDLE集成开发环境。

【实验步骤】

在windows764位旗舰版安装python3,并执行命令和脚本。

第一步:

认识tkinter程序结构

那么为了让tkinter成为应用的一部分,你需要做些什么呢?

首先,已经存在的应用并不

是必需的。

如果你愿意,可以创建一个纯GUI程序,不过没有让人感兴趣的底层功能的程序

不会有什么用处。

让GUI程序启动和运行起来需要以下5个主要步骤。

1.导入tkinter模块(或fromtkinterimport*)。

2.创建一个顶层窗口对象,用于容纳整个GUI应用。

3.在顶层窗口对象之上(或者“其中”)构建所有的GUI组件(及其功能)。

4.通过底层的应用代码将这些GUI组件连接起来。

5.进入主事件循环。

第二步:

使用tkinter.Tk()生成主窗口(root=tkinter.Tk())

root.title('标题名')    修改框体的名字,也可在创建时使用className参数来命名;

root.resizable(0,0)    框体大小可调性,分别表示x,y方向的可变性;

root.geometry('250x150')  指定主框体大小;

root.quit()      退出;

root.update_idletasks()

root.update()     刷新页面;

初级样例:

importtkinter

root=tkinter.Tk()#生成root主窗口

label=tkinter.Label(root,text='Hello,GUI')#生成标签

label.pack()#将标签添加到主窗口

button1=tkinter.Button(root,text='Button1')#生成button1

button1.pack(side=tkinter.LEFT)#将button1添加到root主窗口

button2=tkinter.Button(root,text='Button2')

button2.pack(side=tkinter.RIGHT)

root.mainloop()#进入消息循环(必需组件)

第三步:

tkinter中的15种核心组件

Button  按钮;

Canvas  绘图形组件,可以在其中绘制图形;

Checkbutton复选框;

Entry  文本框(单行);

Text文本框(多行);

Frame  框架,将几个组件组成一组

Label  标签,可以显示文字或图片;

Listbox  列表框;

Menu  菜单;

Menubutton它的功能完全可以使用Menu替代;

Message与Label组件类似,但是可以根据自身大小将文本换行;

Radiobutton单选框;

Scale  滑块;允许通过滑块来设置一数字值

Scrollbar滚动条;配合使用canvas,entry,listbox,andtext窗口部件的标准滚动条;

Toplevel用来创建子窗口窗口组件。

(在Tkinter中窗口部件类没有分级;所有的窗口部件类在树中都是兄弟。

实例如下:

#-*-coding:

UTF-8-*-

fromtkinterimport*#导入Tkinter库

root=Tk()#创建窗口对象的背景色

#创建两个列表

li=['C','python','php','html','SQL','java']

movie=['CSS','jQuery','Bootstrap']

listb=Listbox(root)#创建两个列表组件

listb2=Listbox(root)

foriteminli:

#第一个小部件插入数据

listb.insert(0,item)

foriteminmovie:

#第二个小部件插入数据

listb2.insert(0,item)

listb.pack()#将小部件放置到主窗口中

listb2.pack()

root.mainloop()#进入消息循环

第四步:

控件标准属性

标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。

属性

描述

Dimension

控件大小;

Color

控件颜色;

Font

控件字体;

Anchor

锚点;

Relief

控件样式;

Bitmap

位图;

Cursor

光标;

实例如下

importtkinterastk

window=tk.Tk()

window.title('test')

window.geometry('400x400')#设置主界面大小

btn1=tk.Button(window,text='one',width=5,bg='green')#设置button属性

btn1.pack()

btn2=tk.Button(window,text='two',width=5,height=5,bg='red')#设置button属性

btn2.pack()

btn3=tk.Button(window,text='three',width=3,height=3,bg='blue')#设置button属性

btn3.pack()

btn4=tk.Button(window,text='four',width=15,height=10,bg='yellow')#设置button属性

btn4.pack()

window.mainloop()

第五步:

几何管理

Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,一下是Tkinter公开的几何管理类:

包、网格、位置

几何方法

描述

pack()

包装;

grid()

网格;

place()

位置;

实例如下:

importtkinterastk

window=tk.Tk()

window.title('test')

window.geometry('400x400')

btn1=tk.Button(window,text='one',width=5,bg='green')

btn1.grid(row=0,column=0)

btn2=tk.Button(window,text='two',width=5,height=5,bg='red')

btn2.grid(row=0,column=1)

btn3=tk.Button(window,text='three',width=3,height=3,bg='blue')

btn3.grid(row=1,column=0)

btn4=tk.Button(window,text='four',width=15,height=10,bg='yellow')

btn4.grid(row=1,column=1)

window.mainloop()

第六步:

事件绑定

一个Tkinter主要跑在mainloop进程里。

Events可能来自多个地方,比如按键,鼠标,或是系统事件。

Tkinter提供了丰富的方法来处理这些事件。

对于每一个控件Widget,你都可以为其绑定方法function。

通过command属性给button绑定事件

目的:

点击一下按扭,在窗口中出现一行字

第一种方法(command):

fromTkinterimport*

defp_label():

globalroot

Lb=Label(root,text='我爱python')

Lb.pack()

root=Tk()

B_n=Button(root,text='点我',command=p_label)#command后面不能有任何的标点符号

B_n.pack()

root.mainloop()

第二种方法(bind):

1、bind的第一个参数是事件类型,它采用的描述方式是这样的:

,这里的MODIFIER即修饰符,它的全部取值如下:

Control,Mod2,M2,Shift,Mod3,M3,Lock,Mod4,M4,Button1,B1,Mod5,M5Button2,B2,Meta,M,Button3,B3,Alt,Button4,B4,Double,Button5,B5Triple,Mod1,M1。

而第三个TYPE表示类型,它的全部取值如下:

Activate,Enter,Map,ButtonPress,Button,Expose,Motion,辛星2014年度辛星tkinter教程第二版tkinter25/103ButtonRelease,FocusIn,MouseWheel,Circulate,FocusOut,Property,Colormap,GravityReparent,Configure,KeyPress,Key,Unmap,Deactivate,KeyReleaseVisibility,Destroy,Leave。

第三个参数表示细节,其实也就是对第二个参数的一些辅助说明。

2、第二个参数可以是一个函数名,记住,不要加任何的标点符号,否则运行时会报错的。

第四步:

计算器实现

实例分析

第3行,导入相应的包。

第5-11,定义主界面和主界面标题、大小和输入过程中字符串表达式、结果和符号。

第13行,定义输入的按键值类。

第17-19行,按加按键时,字符串连接

第20-22行,按退格键时消除前面的字符。

第23-27行,按清理按键时,清除结果和符号

第28-36行,按+-号时,设置数字和表达式

第37-44行,按小数点时,设置数字和表达式

第45-77行,按等于键时,根据表达式计算值,并显示

第79-81行,定义复制键。

第83-148行,利用格栅grid布局来给计算器界面布局

第149-163行,定义菜单项和子菜单。

第166-168行,程序调用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1