PYTHON GUI编程 1
使用tkinker包步骤
- 创建一个窗口。
- 向窗口中添加控件。
- 为控件定义事件处理程序。
创建一个窗口
在GUI环境中,所有的事情都跟窗口有关。所以创建GUI应用的第一步是为你的应用创建主窗口,被叫做根窗口。
你可以创建一个Tk对象来完成这件事情,这个对象包含了你的窗口的方方面面。要创建一个Tk对象,首先是导入tkinter库,然后初始化一个Tk对象,代码如下:
from tkinter import *
root = Tk()
代码运行结果
这会创建一个窗口对象,,然后赋值给变量root。单只这个默认的窗口没有任何大小、标题或者功能。
下一步为窗口设置一些特性,有两种常用方法:
- title() 设置窗口标题;
- geometry() 设置窗口大小。
例如:
root.title('This is a test window')
root.geometry('300x100')
代码运行结果
向窗口中添加控件
向一个窗口添加控件需要3个步骤:
- 在窗口中创建一个框架模板;
- 定义一个定位方法用来在框架中放置控件;
- 使用你选择的定位方法将控件放到窗口中。
在窗口中创建一个框架模板
tkinter包使用Frame对象为你创建一个区域用来在窗口中放置控件。我们可以创建一个基于Frame子类,在其中定义所有的窗口方法和属性,我们可以给Frame子类起任何名字,但是这个类最流行的名称是Application,如下所示:
class Application(Frame)
现在我们可以创建一个窗口Frame类:
class Application(Frame):
"""MY window application"""
def __init__(self,master):
super(Application,self).__init__(master)
self.grid()
root = Tk()
root.title('Test Application window')
root.geometry('300x100')
app = Application(root)
app.mainloop()
代码运行结果
这时虽然看起来和创建裸的Tk对象一样,但是现在的窗口有一个框架,这时你可以开始向Application对象中添加控件了。
定位控件
这里我们使用grid()方法定位控件,tkinter包提供了3种方法定位控件:
- 使用网格系统
- 将控件放到可利用位置
- 使用位置值
网格方法定义了三个参数:
objiect.grid(row = x,column = y,sticky = n)
值 row和 column 是在布局中的格子的引用,0行0列开始于窗口的左上角。参数 sticky 说明如何对齐,共有9种可能的sticky值。
- N — 控件在格子上方
- S — 控件在格子下方
- E — 右对齐控件
- W — 左对齐控件
- 以此类推有NE、NW、SE、SW、CENTER
定义控件
我们可以通过在类的构造函数中调用create_widgets()方法:
from tkinter import *
class Application(Frame):
def __init__(self,master):
super(Application,self).__init__(master)
self.grid()
self.create_widgets()
def create_widgets(self):
self.label1 = Label(self,text = 'Welcome to my window!')
self.label1.grid(row = 0,column = 0,sticky = W)
root = Tk()
root.title('This is a test window')
root.geometry('300x100')
app = Application(root)
app.mainloop()
代码运行结果
转载:https://blog.csdn.net/mantouyouyou/article/details/105189893