广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python GUI编程详解
  • 705
分享到

Python GUI编程详解

2024-04-02 19:04:59 705人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录python GUI编程0.创建窗口1.Label和Button的使用2.Entry和Text的使用3.Grid网格布局4.Frame框架5.messagebox消息框6.下拉框

Python GUI编程

0.创建窗口


import tkinter as tk
#创建一个窗口
root = tk.Tk()
root.mainloop()
# 第2步,给窗口的可视化起名字
root.title('My Window')
# 设置窗口最小和最大
root.minsize(300,300)
root.maxsize(500,500)

img

1.Label和Button的使用


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:洪卫
import tkinter as tk  # 使用Tkinter前需要先导入
# 第1步,实例化object,建立窗口window
window = tk.Tk()
# 第2步,给窗口的可视化起名字
window.title('My Window')
# 第3步,设定窗口的大小(长 * 宽)
window.geometry('500x300')  # 这里的乘是小x
# 第4步,在图形界面上设定标签
var = tk.StringVar()  # 将label标签的内容设置为字符类型,用var来接收hit_me函数的传出内容用以显示在标签上
l = tk.Label(window, textvariable=var, bg='green', fg='white', font=('Arial', 12), width=30, height=2)
# 说明: bg为背景,fg为字体颜色,font为字体,width为长,height为高,这里的长和高是字符的长和高,比如height=2,就是标签有2个字符这么高
l.pack()
# 定义一个函数功能(内容自己自由编写),供点击Button按键时调用,调用命令参数command=函数名
on_hit = False

def hit_me():
    global on_hit
    if on_hit == False:
        on_hit = True
        var.set('you hit me')
    else:
        on_hit = False
        var.set('')

# 第5步,在窗口界面设置放置Button按键
b = tk.Button(window, text='hit me', font=('Arial', 12), width=10, height=1, command=hit_me)
b.pack()
# 第6步,主窗口循环显示
window.mainloop()

2.Entry和Text的使用

Entry是tkinter类中提供的的一个单行文本输入域,用来输入显示一行文本,收集键盘输入(类似 html 中的 text)。


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:洪卫
import tkinter as tk  # 使用Tkinter前需要先导入
# 第1步,实例化object,建立窗口window
window = tk.Tk()
# 第2步,给窗口的可视化起名字
window.title('My Window')
# 第3步,设定窗口的大小(长 * 宽)
window.geometry('500x300')  # 这里的乘是小x
# 第4步,在图形界面上设定输入框控件entry并放置控件
e1 = tk.Entry(window, show='*', font=('Arial', 14))  # 显示成密文形式
e2 = tk.Entry(window, show=None, font=('Arial', 14))  # 显示成明文形式
e1.pack()
e2.pack()
# 第5步,主窗口循环显示
window.mainloop()

Text是tkinter类中提供的的一个多行文本区域,显示多行文本,可用来收集(或显示)用户输入的文字(类似 HTML 中的 textarea),格式化文本显示,允许你用不同的样式和属性来显示和编辑文本,同时支持内嵌图象和窗口。


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:洪卫
import tkinter as tk  # 使用Tkinter前需要先导入
# 第1步,实例化object,建立窗口window
window = tk.Tk()
# 第2步,给窗口的可视化起名字
window.title('My Window')
# 第3步,设定窗口的大小(长 * 宽)
window.geometry('500x300')  # 这里的乘是小x
# 第4步,在图形界面上设定输入框控件entry框并放置
e = tk.Entry(window, show=None)  # 显示成明文形式
e.pack()

# 第5步,定义两个触发事件时的函数insert_point和insert_end(注意:因为Python的执行顺序是从上往下,所以函数一定要放在按钮的上面)
def insert_point():  # 在鼠标焦点处插入输入内容
    var = e.get()
    t.insert('insert', var)

def insert_end():  # 在文本框内容最后接着插入输入内容
    var = e.get()
    t.insert('end', var)

# 第6步,创建并放置两个按钮分别触发两种情况
b1 = tk.Button(window, text='insert point', width=10,
               height=2, command=insert_point)
b1.pack()
b2 = tk.Button(window, text='insert end', width=10,
               height=2, command=insert_end)
b2.pack()
# 第7步,创建并放置一个多行文本框text用以显示,指定height=3为文本框是三个字符高度
t = tk.Text(window, height=3)
t.pack()
# 第8步,主窗口循环显示
window.mainloop()

Entry.get() 获取输入的文本内容。

Text.insert(‘insert',content) 鼠标焦点处插入内容

Text.insert(‘end',content) 末尾插入内容。

3.Grid网格布局


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:洪卫
import tkinter as tk  # 使用Tkinter前需要先导入
# 第1步,实例化object,建立窗口window
window = tk.Tk()
# 第2步,给窗口的可视化起名字
window.title('My Window')
# 第3步,设定窗口的大小(长 * 宽)
window.geometry('500x300')  # 这里的乘是小x
# 第4步,grid 放置方法
for i in range(3):
    for j in range(3):
        tk.Label(window, text='('+str(i)+','+str(j)+')').grid(row=i, column=j, padx=10, pady=10, ipadx=10, ipady=10)
# 第5步,主窗口循环显示
window.mainloop()

4.Frame框架

Frame:框架,用来承载放置其他GUI元素,就是一个容器,是一个在 windows 上分离小区域的部件, 它能将 Windows 分成不同的区,然后存放不同的其他部件. 同时一个 Frame 上也能再分成两个 Frame, Frame 可以认为是一种容器.


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:洪卫
import tkinter as tk  # 使用Tkinter前需要先导入
# 第1步,实例化object,建立窗口window
window = tk.Tk()
# 第2步,给窗口的可视化起名字
window.title('My Window')
# 第3步,设定窗口的大小(长 * 宽)
window.geometry('500x300')  # 这里的乘是小x
# 第4步,在图形界面上创建一个标签用以显示内容并放置
tk.Label(window, text='on the window', bg='red', font=('Arial', 16)).pack()  # 和前面部件分开创建和放置不同,其实可以创建和放置一步完成
# 第5步,创建一个主frame,长在主window窗口上
frame = tk.Frame(window)
frame.pack()
# 第6步,创建第二层框架frame,长在主框架frame上面
frame_l = tk.Frame(frame)  # 第二层frame,左frame,长在主frame上
frame_r = tk.Frame(frame)  # 第二层frame,右frame,长在主frame上
frame_l.pack(side='left')
frame_r.pack(side='right')
# 第7步,创建三组标签,为第二层frame上面的内容,分为左区域和右区域,用不同颜色标识
tk.Label(frame_l, text='on the frame_l1', bg='green').pack()
tk.Label(frame_l, text='on the frame_l2', bg='green').pack()
tk.Label(frame_l, text='on the frame_l3', bg='green').pack()
tk.Label(frame_r, text='on the frame_r1', bg='yellow').pack()
tk.Label(frame_r, text='on the frame_r2', bg='yellow').pack()
tk.Label(frame_r, text='on the frame_r3', bg='yellow').pack()
# 第8步,主窗口循环显示
window.mainloop()

在这里插入图片描述

关于边距

padx,pady 外边距水平方向和垂直方向。

ipadx,ipady 内边距。

padx=10,表示左右边距为10像素。

padx=(10,20) 表示左边距10,右边距20.

//www.jb51.net/article/224752.htm

5.messagebox消息框


import tkinter as tk
from tkinter import messagebox
if __name__ == '__main__':
    def LoginButton():
        u = rt.username.get()
        p = rt.passWord.get()
        if len(u) == 0 or len(p) == 0:
            messagebox.showerror('提示:', '输入信息为空')
        else:
            messagebox.showinfo('提示:', '用户名: %s\n密码为: %s\n' % (u, p))

    # 主窗口
    rt = tk.Tk()
    rt.geometry('300x300')
    # 变量
    rt.username = tk.StringVar()
    rt.password = tk.StringVar()
    # 账号
    f1 = tk.Frame(rt)
    tk.Label(f1, text='账号:  ').grid(row=0, column=0, padx=30)
    tk.Entry(f1, textvariable=rt.username).grid(row=0, column=1)
    f1.grid(pady=50)
    # 密码
    f2 = tk.Frame(rt)
    tk.Label(f2, text='密码:  ').grid(row=1, column=0, padx=30)
    tk.Entry(f2, show='*', textvariable=rt.password).grid(row=1, column=1)
    f2.grid()
    # 登录按钮
    tk.Button(rt, text='登录', command=LoginButton).grid(pady=30)
    rt.mainloop()

在这里插入图片描述

6.下拉框


    def GetIdentity(*args):
        identity = rt.identity.get()
        print(identity)
# 身份下拉框
    f0 = tk.Frame(rt)
    tk.Label(f0, text='身份:  ').grid(row=0, column=0, padx=(5,30))
    identityBox = ttk.Combobox(f0, textvariable=rt.identity, values=['管理员', '用户', '其他'],width=10)
    identityBox.grid(row=0, column=1)
    identityBox.current(1)
    identityBox.bind("<<ComboboxSelected>>", GetIdentity)
    f0.grid(padx=0,pady=20)

在这里插入图片描述

7.Menu菜单

创建一个顶级菜单,你需要先创建一个菜单实例,然后使用 add() 方法将命令和其它子菜单添加进去:


import tkinter as tk
root = tk.Tk()
def callback():
        print("~被调用啦~")
#创建一个顶级菜单
menubar = tk.Menu(root)
menubar.add_command(label = "Hello", command = callback)
menubar.add_command(label = "Quit", command = root.quit)
#显示菜单
root.config(menu = menubar)
root.mainloop()

2.创建一个下拉菜单(或者其他子菜单),方法也是大同小异,最主要的区别是它们最后需要添加到主菜单上(而不是窗口上):


import tkinter as tk
root = tk.Tk()
def callback():
    print("~被调用了~")
# 创建一个顶级菜单
menubar = tk.Menu(root)
# 创建一个下拉菜单“文件”,然后将它添加到顶级菜单中
filemenu = tk.Menu(menubar, tearoff=False)
filemenu.add_command(label="打开", command=callback)
filemenu.add_command(label="保存", command=callback)
filemenu.add_separator()
filemenu.add_command(label="退出", command=root.quit)
menubar.add_cascade(label="文件", menu=filemenu)
# 创建另一个下拉菜单“编辑”,然后将它添加到顶级菜单中
editmenu = tk.Menu(menubar, tearoff=False)
editmenu.add_command(label="剪切", command=callback)
editmenu.add_command(label="拷贝", command=callback)
editmenu.add_command(label="粘贴", command=callback)
menubar.add_cascade(label="编辑", menu=editmenu)
# 显示菜单
root.config(menu=menubar)
root.mainloop()

//www.jb51.net/article/224757.htm

项目学习、

1.点名器

在这里插入图片描述

在这里插入图片描述

a.导航栏

顶级菜单分为两个子菜单:菜单和导入人名列表。

子菜单三个功能:删除库,退出,显示作者。

b.主体

用一个Label 表示提示信息(请导入人名列表,请选择人数)

然后三个Label分别显示选择几个人,三个Button按钮。

清零按钮用来清屏三个Label。

c.逻辑

运行程序,先检查是否当前工作目录下是否有文件库.txt(人名数据表)

没有提示导入,然后点击导入,会在工作目录下生成一个库.txt。

点对应的生成按钮,利用random函数从人名表中生成。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: Python GUI编程详解

本文链接: https://www.lsjlt.com/news/137502.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python GUI编程详解
    目录Python GUI编程0.创建窗口1.Label和Button的使用2.Entry和Text的使用3.Grid网格布局4.Frame框架5.messagebox消息框6.下拉框...
    99+
    2022-11-12
  • 带你详细了解Python GUI编程框架
    目录1. GUI编程类关系图2. 常用组件方法3.GUI面向对象写法总结1. GUI编程类关系图 我们来看看Tkinter 的GUI组件关系图 重要说明: 1.上述图表示的是相关类...
    99+
    2022-11-12
  • python--GUI编程--Tkinter
    Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk...
    99+
    2023-01-30
    python GUI Tkinter
  • python--GUI编程--Tkinter2
    编写一个st2.py文件,代码如下#!/usr/bin/env python # coding: utf-8 __author__ = 'www.py3study.com' ...
    99+
    2023-01-30
    python GUI
  • Python-GUI编程-PyQt5
    Python-GUI编程-PyQt51. GUI编程是什么GUI 全称为: Graphical User Interface;简称GUI翻译为中文为: 图形化用户接口简单理解就是:- 使用Python开发出一个软件的界面,- 让用户可以通过...
    99+
    2023-01-30
    Python GUI
  • Python GUI之tkinter详解
    展示 import tkinter if __name__ == '__main__': win = tkinter.Tk() #设置标题 win...
    99+
    2022-11-12
  • Java GUI编程菜单组件实例详解
    前面讲解了如果构建GUI界面,其实就是把一些GUI的组件,按照一定的布局放入到容器中展示就可以了。在实际开发中,除了主界面,还有一类比较重要的内容就是菜单相关组件,可以通过菜单相关组...
    99+
    2022-11-13
  • Python简单的GUI程序示例详解
    目录一、记事本二、简单画图总结一、记事本 源码 #python简易记事本 from tkinter import * from tkinter import messagebox f...
    99+
    2022-11-13
  • Python的GUI编程(一)Label
    常用Python GUI库有: 1.Tkinter 2.WxPython 3.PyQT 4.pyGtk 5.Jython 6.MFC 7.PythonCard 8.Dabo 9.AnyGui 10.WPY 11.I...
    99+
    2023-01-31
    Python GUI Label
  • Python的GUI编程(二)Butto
    Button 控件是一种标准 Tkinter 控件, 用来展现不同样式的按钮. Button 控件被用以和用户交互, 比如按钮被鼠标点击后, 某种操作被启动. 和 Label 控件类似, 按钮可以展示图片或者文字. 不同的是, Lab...
    99+
    2023-01-31
    Python GUI Butto
  • 基于Python的GUI图形用户界面编程详细讲解
    目录前言    常用的GUI库1.Tkinter2.wxPython3.PyQT基于tkinter模块创建GUI程序步骤主窗口设置主窗口位置和大小GUI...
    99+
    2022-12-29
    python的图形界面gui编程 python开发gui界面 Python gui界面
  • python编程之GUI的选择
     前言:本文来自于网络位置http://www.2cto.com/kf/201009/74917.html。尽管内容可能有些老,但是没有关系,对于想深入Python开发的工作者,在选择GUI开发包,乃至可视化IDE方面都还有相当的借鉴意义。...
    99+
    2023-01-31
    python GUI
  • 详解Python GUI工具取色器
    Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter...
    99+
    2022-06-02
    Python取色器 Python GUI工具
  • 【Python】界面设计——GUI编程之【PyQt5】
    文章目录 一. PyQt5基础(一) 窗口显示(二) PyQt5程序结构分析1. 导入需要的包和模块2. 创建一个应用程序对象3. 控件的操作3.1 创建控件3.2 设置控件3.3 展示控件 ...
    99+
    2023-08-31
    python qt
  • python GUI编程实现扫雷游戏
    目录前言一、基本思路二、源代码1.运行效果2.上源码总结前言 1992年扫雷被加入到windows3.1,成为早期windows的经典游戏。近来接触python的GUI(图形化)编程...
    99+
    2022-11-11
  • python编写的GUI表白小程序
    # Tkinter是Python的标准GUI(图形用户界面)库 ,Python使用Tkinter可以快速的创建GUI应用程序 from tkinter import * from tkinter import messagebox d...
    99+
    2023-01-31
    程序 python GUI
  • 怎样分析Python GUI界面编程
    今天就跟大家聊聊有关怎样分析Python GUI界面编程,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。图形用户界面(Graphical User Interface,简称 GUI,又...
    99+
    2023-06-05
  • Python Socket编程详解
    目录背景TCP和UDP协议本质上的区别?TCP/IP协议栈、HTTP协议、Socket之间的区别和联系?TCPSocket服务器的通信过程?socket和websocket之间的联系...
    99+
    2022-11-12
  • gui编程 -- tkinter初识
    Tkinter 编程Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macint...
    99+
    2023-01-30
    gui tkinter
  • Python网络编程详解
    1、服务器就是一系列硬件或软件,为一个或多个客户端(服务的用户)提供所需的“服务”。它存在唯一目的就是等待客户端的请求,并响应它们(提供服务),然后等待更多请求。 2、客户端/服务器架构既可以应用于计算机...
    99+
    2022-06-04
    详解 网络编程 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作