最近因为剑门关,让我和朋友们喜欢上四川人李白笔下的蜀道难,其中“锦城虽云乐,不如早还家”道出剑门山的险峻!那么对于技术人来说,常常操练自己的技术很重要,要能够达到登峰造极,需要始终磨一磨大脑,更新一下新的编程思路,总结自己,分享他人,互相获益!
最近考虑重新对Python的界面库感兴趣,不知道你听过Tkinter吗?因为他我们可以善用这利器完成基于苹果、微软、Linux跨平台界面编程。今天简单制作计算器试一下!
其实我在青少年编程-Python之自制计算器第八幕分享一篇有关计算器实践方法,相比上篇文章,这次更具体梳理实现步骤、说明其中要点并添加显示时间功能!
如果你是初学或者完全不懂,简单梳理一下实现步骤:
1>计算器部件布局 2>放置部件 3>运行起来
先看看代码实现后的效果图吧?
首先:整个界面布局分为两个部分,你看出来了吗?第一部分第一和第二行的Entry输入框控件;第二部分就是下面的不同功能按键Button控件。
其次:按着行列关系有次序放置控件。
最后:将整个控件联系起来,运行!
本次代码实现使用了Python的类方法,如果你对面对对象方法不熟悉的话,也许看不懂,请你先看看作者之前文章提及面向对象编程的内容!
看看部分代码实现吧:
class GUI:
def __init__(self,t):
self.t=t
fm1 = tkinter.Frame(self.root)
tkinter.Entry(fm1,textvariable=self.t,width=10).grid(row = 0, column = 0, columnspan = 4)
tkinter.Entry(fm1,textvariable=self.result,width=10).grid(row=1, column=0, columnspan=4)
fm1.pack(side=tkinter.TOP)
fm2 = tkinter.Frame(self.root)
tkinter.Button(fm2, text = "C",width=5).grid(row = 1, column = 0, columnspan = 2)
tkinter.Button(fm2, text = "%").grid(row = 1, column = 2)
fm2.pack(side = tkinter.BOTTOM)
self.root.mainloop()
说明细节:
1、Frame控件如同一个仓库需要提前安置,才能在里面放置其他子空间,代码中fm1放置了两个Entry子控件。
2、pack方法决定控件摆放位置,这代码是上下摆放(TOP-BUTTOM)。
如果你看懂了这个代码,说明你的编程能力很不错!那么可以思考几个问题培养你的理解力和思考力:
1、self.t显出出了时间,那么t怎么传进来的呢?
2、self.t传进来的时间只是读取本地时间一次的数据,如何实时显出当前时间呢?
3、目前计算器是无法进行加减乘除等运算,怎么实现呢?
领取专属 10元无门槛券
私享最新 技术干货