当前位置:   article > 正文

Python编程:Tkinter图形界面设计(1)_python窗体界面编程

python窗体界面编程

目录

一、Tkinter的程序框架

 二、窗口内容

2.1 窗口的几何尺寸

2.2 窗口的摆放位置

2.3  实验代码

2.4 控件管理

三、控件编程


一、Tkinter的程序框架

窗口的生成和窗口的呈现,用Tk()和mainloop()包括起来,中间程序是附着在窗口的内部部件。

 二、窗口内容

窗口的内容,是最丰富的细节包括:1、几何尺寸 2、按钮部件 3、...

2.1 窗口的几何尺寸

1)重要操作函数

  • 设置窗口的标题:root.title('Python GUI Learning')
  • 设置窗口大小:root.geometry('380x300')
  • 设定窗口可以(不可)重resize窗口:root.resizable(width=False, height=True)

2)参考代码

  1. from tkinter import Tk
  2. #初始化Tk()
  3. root = Tk()
  4. #设置标题
  5. root.title('Python GUI Learning')
  6. #设置窗口大小
  7. root.geometry('380x300')
  8. #设置窗口是否可变长、宽,True:可变,False:不可变
  9. root.resizable(width=False, height=True)
  10. #进入消息循环
  11. root.mainloop()

2.2 窗口的摆放位置

如果摆放窗口位置,需要知道屏幕的长宽。

1)关键函数

  • 获取屏幕尺寸:screenwidth  = root.winfo_screenwidth()

                         screenheight = root.winfo_screenheight()

  • 设置窗口的大小位置:root.geometry('380x300+200+100')

                                 ( 长=380,高=300,左上角位置(200,100))

2.3  实验代码

  1. from tkinter import Tk
  2. #初始化Tk()
  3. root = Tk()
  4. #设置标题
  5. root.title('Python GUI Learning')
  6. #设置窗口大小
  7. width = 380
  8. height = 300
  9. #获取屏幕尺寸以计算布局参数,使窗口居屏幕中央
  10. screenwidth = root.winfo_screenwidth()
  11. screenheight = root.winfo_screenheight()
  12. alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth-width)/2, (screenheight-height)/2)
  13. root.geometry(alignstr)
  14. #设置窗口是否可变长、宽,True:可变,False:不可变
  15. root.resizable(width=False, height=True)
  16. #进入消息循环
  17. root.mainloop()

2.4 控件管理

1)常用控件种类

        一般窗口并不能实现交互,交互需要控件完成。Tkinter 提供了各种控件,如按钮、标签和文本框。在一个 GUI 应用程序中使用,这些控件通常被称为控件或者部件,目前有19种Tkinter 部件,如下列表:

控件描述
button按钮控件
Canvas画布,可以实现几何元素的绘制;
Checkbutton选择按钮
Entry就是其它语言的editer,文本输入件
Frame一个矩形区域,构成控件容器
Label显示文字和图片
ListBox列表框
MenuButton菜单工具条
Menu菜单
Message消息控件,显示多行文本
RadioButton单选按钮
Scale可拉动数字游标尺
ScrollBar滚动条
Text显示多行文本
TopLevel容器,用来提供单独对话框
Spinbox输入控件,与Entry类,但支持范围
panedWindow布局管理插件,上盛放控件
labelFrame简单容器
tkMessageBox显示应用程序的消息框

2 控件摆放( 几何管理)

        Tkinter 控件有特定的几何状态管理方法,管理整个控件区域组织,以下是 Tkinter 公开
的几何管理类:包、网格、位置。

几何方法描述属性说明
pack()设置控件位置

after:将组件置于其它组件之后
before:将组件置于其它组件之前
anchor:组件对齐方式,顶对齐‘n',底对齐’s‘,左’w',右‘e'
side:组件在主窗口的位置,可以为’top‘,’bottom‘,’left‘,’right‘

fill:填充方式(X垂直,X:水平)
expand:1可扩展,0不可扩展

grid()网格规划column:组件所在的列起始位置
columnspam:组件列宽
row:组件起始位置
rowspam:组件的行宽
place()位置

anchor:组件对齐方式

x:组件左上角x坐标

y:组件左上角y坐标

relx:组件对于窗口的x相对坐标(0,1)之间

rely:组件对于窗口的y相对坐标(0,1)之间

width:组件宽度

height:组件高度

relwidth:组件相对窗口的宽度(0,1)

relheight:组件相对窗口的高度(0,1)

三、控件编程

3.1 Lable控件

        标签控件,基本用法为:  Lable(root, option...) ,即:Label(根对象, [属性列表]),
其中属性列表如下:

可选属性说明
text文本内容 text=’登录名称‘
bg背景颜色
fg前景颜色
font字体
width宽度
height高度
padx水平边距
pady垂直边距
justify对齐方式
image图像文件路径
compound同一个区域显示文字和图片混合

Lable 控件实例
实例1:标签展示文本,代码如下:

  1. from tkinter import*
  2. #初始化Tk()
  3. root = Tk()
  4. #设置标题
  5. root.title('Python GUI Learning')
  6. #创建一个标签,显示文本
  7. Label(root, text="user-name",bg='red',font=('Arial 12 bold'),width=30,height=1).pack()
  8. Label(root, text="password",bg='green',width=20,height=2).pack()
  9. #进入消息循环
  10. root.mainloop()

执行结果:

 ​

实例2:标签展示图标,代码如下:

  1. from tkinter import*
  2. #初始化Tk()
  3. root = Tk()
  4. #设置标题
  5. root.title('Python GUI Learning')
  6. #创建一个标签,显示图标
  7. logo = PhotoImage(file="temp.gif")
  8. Label(root, image=logo).pack(side='left')
  9. #进入消息循环
  10. root.mainloop()

运行结果:

实例3:标签图文混叠,边距控制,代码如下:

  1. from tkinter import*
  2. #初始化Tk()
  3. root = Tk()
  4. #设置标题
  5. root.title('Python GUI Learning')
  6. #创建一个标签,显示文本
  7. logo = PhotoImage(file="skyeL2.gif")
  8. explanation = """At present, only GIF and PPM/PGM
  9. formats are supported, but an interface
  10. exists to allow additional image file
  11. formats to be added easily."""
  12. Label(root,compound=CENTER,text=explanation,image=logo).pack(side="right")
  13. #进入消息循环
  14. root.mainloop()

 运行结果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/874780
推荐阅读
相关标签
  

闽ICP备14008679号