猫史档案馆


[教程贴]带你学GUI带你飞——第一章

用户:tq_xyytq_xyy查看:13 回复:2 评论:13 创建时间:2020-04-24T10:59:30


Python 的 GUI 工具包有很多,之前我们学过的 EasyGui 就是其中最简单的一个,但因为EasyGui 实在是太简单了,所以它只适合接受 GUI 编程的一个敲门砖

center_image

而Tkinter则是Python 的标准工具库,它实际上是建立在 TK 技术上的,TK 技术最初是为 TCL 所设计的。TCL 是一门有名的工具命令语言。但是由于TK的可移植性和灵活性非常高,加上非常容易使用,因此他逐渐被移植到许多脚本语言里,包括大名鼎鼎的 Perl 、Ruby 和 Python。Tkinter 是 Python 的默认 GUI 库,所以,像 IDLE 使用的就是 Tkinter 设计出来的,因此,我们直接在 IDLE 中导入 tkinter,就可以使用了。tkinter 模块在默认安装 Python 时会把他编译好然后自动安装。

第一个GUI程序
import tkinter as tk

app = tk.Tk()
app.title("My window")
app.geometry("300x200")

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

app.mainloop()

center_image

(解析:

※tk.Tk() 中Tk 这个类生成了一个 顶层窗口的实例,它是一个top level 级别的窗口,我们也成为 root 窗口(根窗口)

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

※app.geometry("300x200"),设置窗口的大小,那个乘号是x,单位为像素

※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.geometry("300x200")
root.mainloop()

center_image(解析:首先是把 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就是前景色的意思,就是把打招呼这个字体设置为蓝色的,最后也是自动调整按钮的位置,运行成功后,此时按打招呼那个按钮是没有反应,因为还没有给他绑定相应的触发事件,如下添上:)

center_image

center_image

 

(解析:在 self.hi_there = tk.Button(frame,text = “打招呼”,fg =“blue”,command=self.say_hi)设置按钮的时候,多加了一个参数command=self.say_hi,他就知道了当这个按钮被按下时,他就会去调用后面的方法了,)

----------------------

我们今天就到这里,最后点个关注回个复,感谢你们。


回复

上一页1 页 / 共 1下一页
wrmdcxywrmdcxy

沙发!!

点赞0


评论


tq_xyytq_xyy

课件及源代码下载:https://喵.github.io/learn-python-gui

点赞0


评论