Python自带支持Tk的Tkinter,无需安装任何包,就可以直接使用。Tkinter封装了访问Tk的接口,Tk是一个图形库,支持多个操作系统,使用Tcl语言开发。Tk会调用操作系统提供的本地GUI接口,完成最终的GUI。 先看例子:
一、控件 Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。 目前有15种Tkinter的部件 控件 描述 Button 按钮控件;在程序中显示按钮。 Canvas 画布控件;显示图形元素如线条或文本 Checkbutton 多选框控件;用于在程序中提供多项选择框 Entry 输入控件;用于显示简单的文本内容 Frame 框架控件;在屏幕上显示一个矩形区域,多用来作为容器 Label 标签控件;可以显示文本和位图 Listbox 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户 Menubutton 菜单按钮控件,由于显示菜单项。 Menu 菜单控件;显示菜单栏,下拉菜单和弹出菜单 Message 消息控件;用来显示多行文本,与label比较类似 Radiobutton 单选按钮控件;显示一个单选的按钮状态 Scale 范围控件;显示一个数值刻度,为输出限定范围的数字区间 Scrollbar 滚动条控件,当内容超过可视化区域时使用,如列表框。. Text 文本控件;用于显示多行文本 Toplevel 容器控件;用来提供一个单独的对话框,和Frame比较类似 Spinbox 输入控件;与Entry类似,但是可以指定输入范围值 PanedWindow 是一个窗口布局管理的插件,可以包含一个或者多个子控件。 LabelFrame 是一个简单的容器控件。常用与复杂的窗口布局。 tkMessageBox 用于显示你应用程序的消息框。 二、布局 1、pack() pack()有以下几个常用属性:side、padx、pady、ipadx、ipady、fill、expand 1.1、side side属性有四个可选值:'top'、'bottom'、'left'、'right',分别表示将控件位置设在窗口顶部中心、底部中心、左边中心、右边中心。side默认值为'top'。 1.2、padx、pady、ipadx、ipady 这四个属性分别设置控件水平方向外边距、竖直方向外边距、水平方向内边距、竖直方向内边距。 1.3、fill fill属性有四个可选值:'none'、'x'、'y'、'both'。分别表示不填充、将控件沿水平方向填充、将控件沿竖直方向填充、将控件沿水平和竖直方法填充。 当side属性被设为'top'、'bottom'时,fill只能沿水平方向填充;当side属性被设为'left'、'right'时,fill只能沿竖直方向填充。 1.4、expand expand属性有两个可选值:0、1(或者'yes'、'no')。expand默认值为0。 当expand属性为0时,前面所说的side、fill一切正常;当expand属性为1时,side属性无效,此时控件会在窗口中心位置,且fill既可沿水平方向填充,也可沿竖直方向填充。 2、grid() grid()有以下几个常用属性:row、column、padx、pady、ipadx、ipady、rowspan、columnspan、sticky 2.1、row、column grid()将窗口看做一张表格,将控件放在其中的单元格中,而row、column则用来设置控件所在单元格的坐标。 例如:
单元格的宽度、高度是由同一列中最宽、同一行中最高的控件的宽高决定的。 2.2、padx、pady、ipadx、ipady 这四个属性分别设置控件水平方向外边距、竖直方向外边距、水平方向内边距、竖直方向内边距。 2.3、rowspan、columnspan 有时候,一个控件可能会占用不止一个单元格,这时就要用到rowspan、columnspan,他们的作用与合并单元格类似。 rowspan=3表示该控件会在竖直方向占用3行单元格;column=3则报表时该控件会在水平方向占用3列单元格。 2.4、sticky sticky属性用于设置控件的对齐方式,其可选值有'N'、'S'、'E'、'W'以及这四个值的各种组合。 当stick属性的值为这四个方向中的一个时,控件会向相应方向对齐;当stick属性的值为其中两个时,控件会向相应的一个角对齐;当stick属性的值为其中三个、四个时,控件会先向前两个设定的方向对齐,然后向后两个方向进行填充。 3、place() place()有以下几个常用属性:x、y、relx、rely、anchor 3.1、x、y x、y属性用来设置控件的绝对坐标。 3.2、relx、rely relx、rely属性用来设置控件的相对坐标,范围为0-1。 可以同时使用相对坐标和绝对坐标,此时先根据相对坐标确定控件位置,然后根据绝对坐标使控件进行偏移,最后确定控件的最终位置。 3.3、anchor anchor属性有9个可选值,分别表示9个方向,用来设置控件的锚点。 NW, N, NE W,CENTER,E SW, S, SE 例如,anchor='nw',x=100,y=100表示控件的左上角将在坐标(100,100)处,而anchor='n',x=100,y=100表示控件的顶边中点将在坐标(100,100)处。 4、Frame() Frame()本身是tkinter中的一类控件,用来帮助我们进行布局。 |
||