Python GUI 之 tkinter

tkinter 作为 Python 自带的 gui 库, 还挺好用的=-=(废话)。

Form

一个 Form 就是一个窗口, 一个容器, 我们可以将各个控件添加到这个容器中。

基本的控件

Label, Button, Entry 这些是最基本的窗口控件, 分别实现了内容显示, 执行操作和数据输入的功能。

Label(标签)

常用: Label(form, text=”string”).grid()
第一个参数是该标签所在的窗口对象, text 属性的值就是该标签的内容, 后边的 grid() 方法是一种布局方法, 详细内容后边会做说明。

Button(按钮)

常用: Button(from, text=”string”, command=fun, width=width, height=height).grid()
其中, 与标签不同的是, command 放的是点击这个按钮后所要执行的方法的名称, 该方法不能有一般参数, 如果有可以使用 lambda 定义一个。width 和 height 就是按钮的长和宽了。

Entry(输入框)

常用: Entry(form, textvariable=var).grid()
textvariable 属性表示这个输入框中的内容用哪一个变量来保存, 常用的有StringVar(form), IntVar(form)。需要注意, 在新建变量的时候, 要添加第一个参数为该变量所在的 form, 不然会出现或许不到变量值的情况(不要问我怎么知道的。。。都是泪)。

布局

目前用过两种布局: place() 和 grid()
前者是绝对布局, 后者是表格布局(大概就是这样)。

place

常用: place(x=x, y=y)
根据绝对的坐标来定位控件的位置, 一旦有什么变动。。。。你懂的。
虽然也有一些能够优化的方法, 不过还是费心费神不讨好, 强烈不推荐。
(大概定位自由精确也是一种优点?)

grid

常用: grid(row=row_num, column=column_num, rowspan=row_span, columnspan=column_span, padx=x, pady=y)
表格布局, 就是说把控件当作表格的一个项来进行布局, 工整好康而且省时省心。
row 表示该控件所在表格的行数, column 表示该控件所在表格的列数。
xxxspan 表示该控件在行/列上同时占据了 xxx_span 个格子的位置。(合并单元格的意思)
padx, pady 表示该控件的外边距(具体咋算我也不太清楚。。。。用的时候慢慢调吧。。。先给个默认值 10 ?)
(PS: 可以用空行/空列来辅助调节边距)
(PSS: 单元格的长和宽是根据控件大小来自动调整的, 用 span 的时候要注意下大小, 不然会挤在一块或者相距十万八千里。。。)

emmmmmmm 有了这些应该就能实现大部分需求了, 还有 ttk 中的一些控件, 比如单选, 复选, 列表等一些控件, 大家用到的时候可以去查官方文档或者询问万能的度娘。

发表评论

电子邮件地址不会被公开。 必填项已用*标注