GUI的终极选择:Tkinter

##GUI的终极选择:Tkinter
       (Python 的 GUI 工具包有很多,之前我们学过的 EasyGui 就是其中最简单的一个,但因为EasyGui 实在是太简单了,所以它只适合接受 GUI 编程的一个敲门砖,)
在这里插入图片描述
       (而Tkinter则 是Python 的标准工具库,它实际上是建立在 TK 技术上的,TK 技术最初是为 TCL 所设计的。TCL 是一门有名的工具命令语言。但是由于TK的可移植性和灵活性非常高,加上非常容易使用,因此他逐渐被移植到许多脚本语言里,包括大名鼎鼎的 Perl 、Ruby 和 Python。Tkinter 是 Python 的默认 GUI 库,所以,像 IDLE 使用的就是 Tkinter 设计出来的,因此,我们直接在 IDLE 中导入 tkinter,就可以使用了。tkinter 模块在默认安装 Python 时会把他编译好然后自动安装。)

import tkinter as tk

app = tk.Tk()
app.title("FishC Demo")

theLabel = tk.Label(app,text = "我的第二个窗口程序!")
theLabel.pack()

app.mainloop()

                            在这里插入图片描述
       (解析:※tk.Tk() 中Tk 这个类生成了一个 顶层窗口的实例,它是一个top level 级别的窗口,我们也成为 root 窗口(根窗口)

                   ※app.title(“GUI Demo”),title的话就是设置这个app这个窗口对象的标题,

                   ※tk.Label(app,text = “我的第二个窗口程序!”),Lable是标签的意思,是个组件,Label这个组件实例化之后成为一个组件对象,然后赋值到前面的变量里边去,参数的话就表示这个组件是放在app这个窗口上的,组件显示一个文字,另外Label 组件 基本上是最常用的组件了,主要是用来显示文本,图像,图标等)

                   ※theLabel.pack():用于自动调节组件自身的尺寸和位置

                   ※theLabel.pack():是窗口的主事件循环,这基本是使用tkinter 的GUI程序的最后一行代码,因为进入了主事件循环之后,就由tkinter接管一切,一旦执行了这行代码,就不再由代码做主了,而是由GUI、 tkinter 来响应用户的输入,例如,用户按下一个按钮,tkinter感受到这个按钮被点到了,他就会调用你为这个按钮安排好的方法,由tkinter来调用你的函数

       ※进阶版
     (对于面向对象的编程语言,如果你想要写一个比较大的程序,那么你应该把代码封装起来,在面向对象的编程语言中,就是封装成类。)

import tkinter as tk

class App:
   def __init__(self,master):
       frame = tk.Frame(master)
       frame.pack()


       self.hi_there = tk.Button(frame,text = "打招呼",fg ="blue")
       self.hi_there.pack()

              
root = tk.Tk()
app = App(root)

root.mainloop()


                            在这里插入图片描述
       (解析:首先是把 GUI 封装成类,类名为 App,root = tk.Tk(),先创建了一个root顶层窗口,然后app = App(root),实例化App这个类,把这个窗口对象作为参数传递过去,root.mainloop()就是进入主事件循环,
       接着来完成App这个类,首先有传入的参数,需要在构造方法去设置,构造方法里边添加了个frame框架,frame = tk.Frame(master),参数就是这个框架要放在哪个窗口对象,这里就是传进来的root窗口,形参叫做master,另外,框架一般是用于在复杂的布局里边,将这些组件分组的一个作用,比如这里有很多组件,有框架就可以把这一部分组件分为第一块,第二块…第一块在什么位置…第二块在什么位置,
       frame.pack()就是自动调整他的位置了,接着创建了一个按钮组件 self.hi_there = tk.Button(frame,text = “打招呼”,fg =“blue”),第一个参数就表示,这个按钮我就放在这frame这个框架里边了,然后text就是设置这个按钮的文字内容,第三个参数fg就是前景色的意思,就是把打招呼这个字体设置为蓝色的,最后也是自动调整按钮的位置,运行成功后,此时按打招呼那个按钮是没有反应,因为还没有给他绑定相应的触发事件,如下添上:)
在这里插入图片描述
       在这里插入图片描述
           (解析:在 self.hi_there = tk.Button(frame,text = “打招呼”,fg =“blue”,command=self.say_hi)设置按钮的时候,多加了一个参数command=self.say_hi,他就知道了当这个按钮被按下时,他就会去调用后面的方法了,)

       ※修改按钮的位置
           (解析:我们可以通过在pack方法里边加参数实现改变按钮的位置,我们知道pack()方法会自动调整你的位置,他默认会调整到最上边top,这个参数总共有四个位置:left,right,top,bottom,可以通过设置参数来调整,如下:)
       在这里插入图片描述
       ※同时可以设置 pack() 方法的 padx 和 pady 参数来设置按钮和x轴、y轴的内边距
       在这里插入图片描述

       ※还可以用bg参数来设置按钮的背景色
       在这里插入图片描述

发布了247 篇原创文章 · 获赞 116 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/w15977858408/article/details/104141723
今日推荐