本期案例是带大家自己做一个GUI图形界面—>用来设计签名(效果如下图)。是不是感觉很好玩,你真的想学吗?由于空间限制。tkinter的简单应用Tkinter是Python的标准GUI库。Python使用Tkinter快速创建GUI应用程序。当然,常用的GUI库是PyQt5,如果你真的想学,我们只需要知道这两个常用的就可以了。由于Tkinter属于Python标准库,无需使用pip安装,直接导入即可使用。①显示窗口root.mainloop()显示窗口;窗口默认显示在电脑屏幕的左上角,很小(后期需要改进)。fromtkinterimport*fromtkinterimportmessagebox#创建窗口:实例化一个窗口对象。root=Tk()#Displaywindowroot.mainloop()"""注意:窗口的默认显示位置在哪里,观察下面的截图。窗口默认显示在整个电脑屏幕的左上角,而且窗口尺寸很小。"""结果如下:注:上面2行代码先实例化了一个窗口对象,然后我们显示窗口,使其真正显示出来。我们接下来的操作是针对这个窗口的一系列优化操作。请注意:用于此优化操作的代码位于这两行代码之间。②设置窗口大小root.geometry("600x400")调整窗口大小。该方法中输入的是“宽x高”,但需要注意的是乘号是小写英文字母x,不是*所代表的乘号。fromtkinterimport*fromtkinterimportmessagebox#创建窗口:实例化一个窗口对象。root=Tk()#窗口大小root.geometry("600x450")#显示窗口root.mainloop()结果如下:③调整窗口位置(方法相同)root.geometry("600x400+374+182")调整窗口的大小和位置。374,182代表窗口顶点,从计算机左上角算起的坐标。你是怎么得到这个号码的?可以直接借助微信截图展示。操作代码如下:fromtkinterimport*fromtkinterimportmessagebox#创建窗口:实例化一个窗口对象。root=Tk()#窗口大小root.geometry("600x450+374+182")#显示窗口root.mainloop()结果如下:④设置窗口的标题root.title()设置窗口的标题window默认的窗口标题是tkfromtkinterimport*fromtkinterimportmessagebox#创建窗口:实例化一个窗口对象。root=Tk()#窗口大小root.geometry("600x450+374+182")#窗口标题root.title("我的个性签名设计")#显示窗口root.mainloop()结果如下:⑤添加标签控件,找到Label(root,text="signature")添加标签控件。传入的第一个参数是实例化的根窗口对象;第二个参数传入要显示的标签文本。仅仅添加label控件是不够的,label控件只有在指定位置后才会显示,也就是最后调用grid()方法才会显示label控件。fromtkinterimport*fromtkinterimportmessagebox#创建窗口:实例化一个窗口对象。root=Tk()#窗口大小root.geometry("600x450+374+182")#窗口标题root.title("我的个性签名设计")#添加标签控件label=Label(root)#位置label.grid()#Displaywindowroot.mainloop()结果如下:当然你也可以想象这个方法也可以修改字体样式、字体大小、字体颜色?怎么做?我们往下看。fromtkinterimport*fromtkinterimportmessagebox#创建窗口:实例化一个窗口对象。root=Tk()#窗口大小root.geometry("600x450+374+182")#窗口标题root.title("我的个性签名设计")#添加标签控件label=Label(root,text="signature",font=("宋体",25),fg="red")"""text参数用于指定显示的文字;font参数用于指定字体大小和字体样式;fg参数用于指定字体颜色;"""#定位label.grid()#显示窗口root.mainloop()结果如下:⑥添加一个输入框,定位到Entry(root,font=("Song",25),fg="red")添加输入框第一个参数,在实例化的根窗口对象中传入;第二个参数可写可不写,指的是我们输入的字体的字型和字号;第三个参数也可以不写,表示我们输入的字体颜色。同样的,仅仅使用上面的代码是不会显示输入框的,只有调用了grid()方法并定位后,输入框才会真正显示出来。fromtkinterimport*fromtkinterimportmessagebox#创建窗口:实例化一个窗口对象。root=Tk()#窗口大小root.geometry("600x450+374+182")#窗口标题root.title("我的个性签名设计")#添加标签控件label=Label(root,text="signature",font=("宋体",25),fg="red")#位置label.grid()#添加输入框entry=Entry(root,font=("宋体",25),fg="red")entry.grid()#Displaywindowroot.mainloop()结果如下:注意:很明显这样的排列不是我们想要的。我们需要对其进行调整,我们将在下面花一节来描述如何调整这个位置。⑦调整控件的位置首先我们要了解,显示窗口采用什么样的布局方式?其实就是网格布局。那么什么是网格布局呢?你知道excel表格,每一个格子都是格子格式布局。好吧!知道了上面的原理之后,我们现在就来真正调整一下这个控件的位置。fromtkinterimport*fromtkinterimportmessagebox#创建窗口:实例化一个窗口对象。root=Tk()#窗口大小root.geometry("600x450+374+182")#窗口标题root.title("我的个性签名设计")#添加标签控件label=Label(root,text="Signature:",font=("宋体",25),fg="red")#定位label.grid()"""label.grid()等价于label.grid(row=0,column=0)"""#添加输入框entry=Entry(root,font=("Song",25),fg="red")entry.grid(row=0,column=1)"""row=0,column=1表示We将输入框控件放在第1行第2列的位置;在python语言中,这个下标从0开始。"""#显示窗口root.mainloop()结果如下:⑧添加点击按钮Button(root,text="签名设计",font=("歌曲类型",25),fg="red")添加输入框。传入的第一个参数是实例化的根窗口对象;第二个参数显示我们点击按钮的标签;第三个参数可写可不写,指的是按钮字体的字体样式和字体大小;第四个参数也可写可不写,表示被点击按钮的字体颜色。同样的,仅仅使用上面的代码是不会显示输入框的,只有调用grid()方法定位后才会真正显示点击按钮。fromtkinterimport*fromtkinterimportmessagebox#创建窗口:实例化一个窗口对象。root=Tk()#窗口大小root.geometry("600x450+374+182")#窗口标题root.title("我的个性签名设计")#添加标签控件label=Label(root,text="Signature:",font=("宋体",25),fg="red")#位置label.grid()#添加输入框entry=Entry(root,font=("宋体",25),fg="red")entry.grid(row=0,column=1)#添加点击按钮button=Button(root,text="signaturedesign",font=("Songtype",25),fg="blue")button.grid(row=1,column=1)#Displaywindowroot.mainloop()结果如下:至此界面已经搭建完成,接下来就是输入名字,点击签名设计,就可以了显示我的签名,这里那你就需要用到爬虫了!我们将在明天发布本文的下一部分,敬请期待。⑨点击按钮自定义功能这里是最后要补充的知识点。我们点击按钮之后,总是希望返回一些东西给我们,所以我们需要自定义函数。fromtkinterimport*fromtkinterimportmessageboxdeffunc():print("我是黄同学")#创建窗口:实例化一个窗口对象。root=Tk()#窗口大小root.geometry("600x450+374+182")#窗口标题root.title("我的个性签名设计")#添加标签控件label=Label(root,text="Signature:",font=("宋体",25),fg="red")#位置label.grid()#添加输入框entry=Entry(root,font=("宋体",25),fg="red")entry.grid(row=0,column=1)#添加点击按钮button=Button(root,text="signaturedesign",font=("Songtype",25),fg="blue",command=func)button.grid(row=1,column=1)"""command=func的意思是调用一开始定义的func函数。func函数必须在这段代码之前,因为这里需要调用func函数。"""#显示窗口root.mainloop()结果如下:
