一、常用的GUI库

  1. Tkinter:tkinter(Tk interface)是Python的标准GUI库,支持跨平台的GUI程序开发,tkinter适合小型的GUI程序编写,也特别适合初学者学习GUI编程。
  2. wxPython:wxPython是比较流行的GUI库,适合大型应用程序开发,功能强宇tkinter,整体设计框架类似于MFC(Microsoft Foundation Classes  微软基础类库)
  3. PyQT:Qt是一种开源的GUI库,适合大型GUI程序开发,PyQT是Qt工具包标准的Python实现。我们也可以使用Qt Desginer 界面设计器快速开发GUI应用程序。

基于tkinter模块创建GUI程序包括如下4个核心步骤:

  1. 创建应用程序主窗口对象(也称:根窗口):通过类Tk的无参构造函数
  2. 在主窗口中,添加各种可视化组件,比如:按钮(Button)、文本框(Label)等。
  3. 通过几何布局管理器,管理组件的大小和位置
  4. 事件处理:通过绑定事件处理程序,响应用户操纵所触发的事件(比如:单击、双击等)

操作如下:

from tkinter import *
from tkinter import messagebox
root = Tk()
btn01=Button(root)
btn01["text"]="点我就送花"
btn01.pack()
def songhua(e):       #e就是事件对象messagebox.showinfo("Message","送你一朵玫瑰花")print("送你99朵玫瑰花")
btn01.bind("<Button-1>", songhua)
root.mainloop()       #调用组件的mainloop()方法,进入事件循环

二、主窗口位置和大小

通过geometry('wxh ±x ±y‘)进行设置。w为宽度,h为高度,+x表示距屏幕左边的距离,-x表示据屏幕右边的距离,+y表示距屏幕上边的距离,-y表示距屏幕下边的距离。

root = Tk()
root.title("我的第一个GUI程序")
root.geometry("500x300+100+200")

实验:测试GUI程序的类的对象:

"""测试一个经典的GUI程序的写法,使用面向对象的方式"""
from tkinter import *
from tkinter import messagebox
class Application(Frame):"""一个经典的GUI程序的类的写法"""def __init__(self, master=None):super().__init__(master)      #super()代表的是父类的定义,而不是父类对象self.master=masterself.pack()self.createWidget()def createWidget(self):"""创建组件"""self.btn01 = Button(self)self.btn01["text"] = "点击送花"self.btn01.pack()self.btn01["command"] =self.songhua# 创建一个退出按钮self.btnQuit= Button(self, text="退出", command=root.destroy)self.btnQuit.pack()def songhua(self):messagebox.showinfo("送花","送你99朵玫瑰花")
root=Tk()
root.geometry("400x100+200+300")
root.title("一个经典的GUI程序类的测试")
app = Application(master=root)
root.mainloop()

三、label标签

Label(标签)主要用于显示文本信息,也可以显示图像

Label(标签)有这些常见的属性:

  1. width,height:用于指定区域大小,如果显示是文本,则以单个英文字符大小为单位(一个汉字占2个字符位置);如果显示的是图像,则以像素为单位,默认值是根据具体显示的内容动态调整。
  2. font:指定字体和字体大小,如:font = (font_name,size)
  3. image:显示在Label上的图像,目前tkinter只支持gif格式
  4. fg和bg:fg(foreground):前景色、bg(background):背景色
  5. justify:针对多行文字的对齐,可设置justify属性,可选值”left“,”center“和”right"

四、Options选项详解

  1. 创建对象时,使用命名参数(也叫关键字参数)

fred=Button(self, fg="red", bg="blue")

2.创建对象后,使用字典索引方式

fred["fg"]= "red"

fred["bg"] = "blue"

3. 创建对象后,使用 config()方法

fred.config(fg="red", bg="blue")

五、 Button

Button(按钮)用来执行用户的单击操作,Button可以包含文本,也可以包含图像,按钮被单击后会自动调用对应事件绑定的方法。

六、Entry单行文本框

Entry用来接收一行字符串的控件,如果用户输入的文字长度长于Entry控件的宽度时,文字会自动向后滚动,如果想输入多行文本,需要使用Text控件。

"""测试Entry组件的基本用法,使用面向对象的方式"""
from tkinter import *
from tkinter import messagebox
class Application(Frame):"""一个经典的GUI程序的类的写法"""def __init__(self, master=None):super().__init__(master)      #super()代表的是父类的定义,而不是父类对象self.master=masterself.pack()self.createWidget()def createWidget(self):"""创建登录界面的组件"""self.label01 = Label(self,text="用户名")self.label01.pack()#StringVar变量绑定到指定的组件#StringVar变量的值发生变化,组件内容也变化#组件内容发生变化,StringVar变量的值也发生变化。v1=StringVar()self.entry01=Entry(self,textvariable=v1)self.entry01.pack()v1.set("admin")print(v1.get());print(self.entry01.get())#创建密码框self.label02=Label(self,text="密码")self.label02.pack()v2 = StringVar()self.entry02 = Entry(self, textvariable=v2,show="*")self.entry02.pack()Button(self,text="登录",command=self.login).pack()def login(self):print("用户名:"+self.entry01.get())print("密码:" + self.entry02.get())messagebox.showinfo("学习系统","登录成功!欢迎开始学习!")
if __name__=='__main__':root = Tk()root.geometry("400x130+200+300")app=Application(master=root)root.mainloop()

七、Text多行文本框

Text(多行文本框)的主要用于显示多行文本,还可以显示网页链接,图片,HTML页面,甚至CSS样式表,添加组件等,因此,也常被当做简单的文本处理器,文本编辑器或者网页浏览器来使用。比如IDLE就是Text组件组成的。

八、Radiobutton单选按钮与Checkbutton复选按钮

Radiobutton控件用于选择同一组单选按钮中的一个。Radiobutton可以显示文本,也可以显示图像。

Checkbutton控件用于选择多个按钮的情况。Checkbutton可以显示文本,也可以显示图像。

九、canvas画布

canvas(画布)是一个矩形区域,可以放置图形,图像,组件等。

十、布局管理器

grid布局管理器:grid表格布局,采用表格结构组织组件。子组件的位置由行和列的单元格来确定,并且可以跨行和跨列,,从而实现复杂的布局。

grid()方法提供的选项

选项 说明 取值范围
column 单元格的列号 从0开始的正整数
columnspan 跨列,跨越的列数 正整数
row 单元格的行号 从0开始的正整数
rowspan 跨行,跨越的行数 正整数
ipadx、ipady 设置子组件之间的间隔,x方向或者y方向,默认单位为像素 非负浮点数,默认0.0
padx、pady 与之并列的组件之间的间隔,x方向或者y方向,默认单位为像素 非负浮点数,默认0.0
sticky 组件紧贴所在单元格的某一角,对应于东南西北中以及4个角 “n“,”s“,”w“,”e“,”nw“,”sw“,”se“,”ne“,”center“(默认)

Python之GUI编程相关推荐

  1. python界面编程-Python的GUI编程(TK)

    TK在大多数 Unix平台.Windows平台和Macintosh系统都是预装好的,TKinter 模块是 Tk GUI 套件的标准Python接口.可实现Python的GUI编程. Tkinter模 ...

  2. python实现gui编程_怎样用Python3实现GUI编程?

    目前来说,大部分用python实现GUI开发,主要是tkinter,wxPython,PyQt这3个包,如果你只是实现一个小型的桌面GUI应用,做个小型系统的话,tkinter和wxPython完全就 ...

  3. python支持gui编程_Python GUI编程完整示例

    本文实例讲述了python gui编程.分享给大家供大家参考,具体如下: import os from time import sleep from tkinter import * from tki ...

  4. Python pygame(GUI编程)模块最完整教程(1)

    提示:下滑文章左侧可以查看目录! 1 初识pygame 1.1 简介 参考资料:About - pygame wiki pygame是python中一个流行的GUI编程模块,是专门为了开发游戏而设计的 ...

  5. 鱼c笔记——Python 的 GUI 编程(一):接触 Tkinter

    Python 的 GUI 工具包有很多,之前的 EasyGUI 就是其中最简单的一个.但是 EasyGUI 实在是太简单了,因此只适合作为 GUI 编程的敲门砖. 而与 EasyGUI 不同,这次要介 ...

  6. python的gui编程用途_Python19-03_GUI编程----GUI编程的介绍(第一个程序)

    GUI编程的介绍(第一个程序) GUI图形用户界面编程 我们前面实现的都是基于控制台程序, 程序和用户交互通过控制台来完成. GUI(Graphics User Interfance)即图形用户界面编 ...

  7. python的gui编程pyqt5_Python-GUI编程-PyQt5

    章节1:Python-GUI编程-简介课时1Python-GUI编程-简介14:19课时2Python-GUI编程-GUI库的简介13:43课时3Python-GUI编程-PyQt的简介11:44课时 ...

  8. 【Python】GUI编程(Tkinter)教程

    什么是Tkinter? Tkinter 是 Python 的标准 GUI 库.Python 使用 Tkinter 可以快速的创建 GUI 应用程序. 由于 Tkinter 是内置到 python 的安 ...

  9. python的GUI编程和tkinter学习笔记——第一个GUI程序

    一.第一个GUI程序 from tkinter import * from tkinter import messagebox# 创建窗口 root = Tk()btn01 = Button(root ...

最新文章

  1. 深入浅出CMake(一):基础篇
  2. windows xcopy
  3. sql 精读(二) 标准 SQL 中的编号函数
  4. gdb+pwndbg使用初探
  5. 找不到_笔记本找不到无线网络怎么办
  6. php 正则替换style,php正则去除js,class,id,style标签代码
  7. [学习笔记]状压dp
  8. 1251: [蓝桥杯2015初赛]星系炸弹
  9. 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(一)
  10. github issue 搜索_回顾 2020 年 GitHub 的大事件,你知道多少?
  11. 201计算机基础知识,201年计算机应用基础备考练习题及答案
  12. 计算机科学导论数据运算,2-计算机科学导论-数据与运算讲述.ppt
  13. Linux查找命令与find命令详解
  14. 一台手机第一天支付1元,第二天支付2元,第三天支付4元,连续支付30天,请问一共需要支付多少钱?
  15. 云计算 | Gartner最新IaaS魔力象限详读
  16. 【Redis】五种存储类型及其底层数据结构
  17. 计算机视觉—BOW图像检索
  18. 六十星系之21紫微天府坐寅申
  19. 计算机需要那些高中数学知识点,信息技术与高中数学教学
  20. 推荐一款完整的互联网商城管理系统(附源码)

热门文章

  1. PyQt5安装及使用教程
  2. 隐藏实力的 JSON.stringify,原来还可以这么用!
  3. IDEA解决配置文件属性提示消失
  4. 理解激活函数作用,看这篇文章就够了!
  5. 有限内存BFGS求解泊松方程
  6. 求最大公约数的四种算法
  7. 最大公约数算法-java实现
  8. 【js】js将数值转为万,亿,万亿并保留两位小数
  9. 深度揭秘阿里(蚂蚁金服)技术面试流程!附前期准备,学习方向
  10. PCB布线规范(华为)