《Python核心编程》第五章 GUI编程

2018-6-12

图形用户界面(Graphical User Inerface,GUI),这一章主要还是入门用,使用的主要库Tk,通过Python的接口Tkinter(Tk interface的缩写)可以访问Tk。

让GUI程序启动和运行起来需要以下5个步骤:

1、导入tkinter模块

2、创建一个顶层窗口对象,用于容纳整个GUI应用

3、在顶层窗口之上构建所有的GUI组件(及其功能)

4、通过底层的应用代码将这些GUI组件连接起来

5、进入主事件循环

创建顶层窗口:top = tkinter.Tk()  也称为根窗口(root)。可以由多个顶层窗口,但只能有一个根窗口。

布局管理器:

1、Placer,需要开发者提供对所有控件的摆放位置和控件大小,加重了开发者的负担。

2、Packer,在指定的父控件中,会把控件填充到正确的位置,对于之后的每个控件,会去寻找剩余的空间进行填充。

3、Grid,基于网格坐标使用Grid来指定GUI控件的放置Grid会在他们的网格位置上渲染GUI应用中的每个对象。

一旦Packer确定好所有空间的大小和对齐方式,它就会在屏幕上将其放置妥当。以下是滑块机制的代码。

from tkinter import *
def resize(ev=None):
    label.config(font='Helvetica -%d bold' % scale.get())
    
top = Tk()
top.geometry('250x150')


label = Label(top, text = 'Hello World!',font = 'Helvetica -12 bold')
label.pack(fill=Y, expand=1)
scale = Scale(top, from_=10, to = 40, orient = HORIZONTAL,command=resize)
scale.set(12)
scale.pack(fill =X, expand=1)
quit = Button(top, text='QUIT',command=top.quit,activeforeground='white',activebackground='red')
quit.pack()

mainloop()

windows系统下运行结果:

    

Tk概述:转自https://blog.csdn.net/Red_Sola/article/details/41948795

TK组件简介

控件

Tkinter.Lable 标签

Tkinter.Button按钮

Tkinter.Entry 输入框

Tkinter.CheckButton 多选框

Tkinter.RadioButton 单选框

Tkinter.Listbox  列表框

Tkinter.Scale    数值范围条

Tkinter.Spinbox  数值范围框

Tkinter.Scrollbar 滚动条

Tkinter.Menu   菜单

Tkinter.Option  可选菜单

Tkinter.Frame  框架容器

Tkinter.PanedWindow面板

Tkinter.Toplevel  上层窗体

Tkinter.Text  文本框

Tkinter.Canvas 绘图容器

布局管理器

Tkinter.Pack

Tkinter.Place

Tkinter.Grid

字体

tkFont.Font字体

通用对话框

tkCommonDialog

SimpleDialog.SimpleDialog

FileDialog.LoadFileDialog打开文件

FileDialog.SaveFileDialog保存文件

tkMessageBox.showinfo, #显示信息消息框

tkMessageBox. showwarning, #显示警告消息框

tkMessageBox. showerror, #显示错误消息框

tkMessageBox. askquestion, #显示询问消息框

tkMessageBox. askokcancel, #显示确认/取消消息框

tkMessageBox. askyesno cancel, #显示是/否消息框

tkMessageBox. askretrycancel #显示重试/取消消息框

事件(Event)

1.测试鼠标点击(Click)事件

2.测试鼠标的移动(Motion)事件

3.测试鼠标的释放(Relase)事件

4.进入(Enter)事件

5.测试离开(Leave)事件

6.响应特殊键(Special Key)

7.响应所有的按键(Key)事件

8.只处理指定的按键消息

9.两个事件同时绑定到一个控件

10.为一个instance绑定一个事件

12.事件各个级别音传递

13.使用bind_class的后果

Tk的控件设置:

compound:

label=Tkinter.Label(root,text='error',bitmap='error', compound='left')

Label可以设置root(父窗口),text(显示文本),wraplength(指定text中文本多少宽度后开始换行),justify(文本对齐方式),fg(前景色),bg(背景色),anchor(文本(text)或图像(bitmap/image)在Label的位置。默认为center

值和布局如下:

               nw        n         ne

               w       center      e

               sw        s          se

以及常见的宽高等。

compound:

说明:指定文本(text)与图像(bitmap/image)是如何在Label上显示,缺省为None,当指定image/bitmap时,文本(text)将被覆盖,只显示图像了。

可以使用的值:

left:      图像居左

right:      图像居右

top:      图像居上

bottom:   图像居下     

center:   文字覆盖在图像


猜你喜欢

转载自blog.csdn.net/qq_21210467/article/details/80666301