python实现的简单的GUI程序 ( Python基础教程(第3版)中文版 第12章 图形用户界面 )

                                  第12章 图形用户界面GUI


1.创建GUI实例应用程序


1.导入tkinter
from tkinter import *

#书上的另一种方法import tkinter as tk 后面会出错.

创建作为主窗口的顶级组件(控件)。
top = Tk()

进入Tkinter主事件循环
mainloop()

创建其他控件
按钮Button
btn = Button()

创建后让按钮可见,使用 布局管理器(几何管理器) 告诉Tkinter控件的位置
最简单的方法是直接调用管理器pack
btn.pack()

此时将出现按钮,但是是空的按钮。
接着添加按钮属性和功能
btn['text'] = 'Click me!' #按钮显示信息
添加按钮的行为
def clicked():
    print('I was clicked!')

btn['command'] = clicked

或者使用config一次性添加多个属性和行为
btn.config(text='Click me!', command=clicked)
还可使用控件的构造函数来配置控件:
Button(text='Click me 2!', command=clicked).pack()

2.布局


调用方法pack时,将把控件放在父控件中。
使用构造函数的第一个可选参数可指定主控件。
默认把顶级主窗口用作主控件。
Label(text="In First window").pack()
second = Toplevel() #Toplevel 表示除主窗口外的另一个顶级窗口
Label(second,'In second window').pack()
不提供参数给pack时,pack把控件堆成一列
控件位置可以提供参数调整。
side :LEFT, RIGHT, TOP, BOTTOM
fill: X, Y, BOTH  #填充
expand: True, False #让窗口随父控件改变
#help(Pack.config)了解更多
#grid 和place 也可进行布局管理
grid可以通过表格单元格排列控件,
参数row和column,rowspan和columnspan
place可以让你手工放置,
指定x, y 坐标和高度、宽度
#help(Grid.configure)
#help(Place.config) 了解更多

3.事件处理


command属性指定动作(action)。
bind 让控件对特定的事件进行处理。
对控件调用方法bind,指定事件名称和要使用的函数。
例:
from tkinter import *
top = Tk()
def callback(event):
    print(event.x,event.y)

top.bind('<Button-1>', callback)

#详见help(Tk.bind)

4.最终程序(GUI文本编辑器)

from tkinter import *
from tkinter.scrolledtext import ScrolledText

def load():
    with open(filename.get()) as file:
        contents.delete('1.0', END)
        contents.insert(INSERT, file.read())

def save():
    with open(filename.get(), 'w') as file:
        file.write(contents.get('1.0', END))

top = Tk()
top.title('简单的编辑器')

contents = ScrolledText()
contents.pack(side=BOTTOM, expand=True, fill=BOTH)

filename = Entry()
filename.pack(side=LEFT, expand=True, fill=X )

Button(text='打开',command=load).pack(side=LEFT)
Button(text="保存", command=save).pack(side=LEFT)

mainloop()

#help(tkinter)获取详细信息

小结:


创建一个简单的GUI程序步骤:
1.确定程序功能,布局对应的按钮和窗口,

2.使用函数实现功能,然后将窗口和函数绑定

上面的GUI文本编辑器的例子,为了创建一个文本编辑器,
首先确定功能:编辑文字,保存文件,读取文件
对应的窗口和按钮是:主窗口,编辑文字的窗口,保存按钮,读取(打开)按钮。保存和输入文件名的窗口(这个差点就忘了)

对应的代码:
#主窗口
top = Tk()
top.title('简单的编辑器')

#文字编辑窗口
contents = ScrolledText()
contents.pack(side=BOTTOM, expand=True, fill=BOTH)
#读取,保存窗口
Button(text='打开',command=load).pack(side=LEFT)
Button(text="保存", command=save).pack(side=LEFT)
#输入文件名窗口
filename = Entry()
filename.pack(side=LEFT, expand=True, fill=X )


之后就是实现具体的功能了,

def load():
    with open(filename.get()) as file:
        contents.delete('1.0', END)
        contents.insert(INSERT, file.read())


def save():
    with open(filename.get(), 'w') as file:
        file.write(contents.get('1.0', END))

文件的最后,使用 mainloop() 运行
#当然文件的开头加导入tkinter 和 ScrolledText

from tkinter import *
from tkinter.scrolledtext import ScrolledText

猜你喜欢

转载自blog.csdn.net/qq_41068877/article/details/82085186