iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python如何实现简单的GUI程序
  • 423
分享到

Python如何实现简单的GUI程序

2023-06-29 03:06:04 423人浏览 泡泡鱼

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

摘要

这篇文章主要介绍python如何实现简单的GUI程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、记事本源码#Python简易记事本from tkinter import *from

这篇文章主要介绍python如何实现简单的GUI程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、记事本

源码

#Python简易记事本from tkinter import *from tkinter import messageboxfrom tkinter import filedialogimport osfilename=''   #文件名,全局变量def about():    messagebox.showinfo('提示','这是一个消息框')def openFile():    global filename   #使用全局变量    filename=filedialog.askopenfilename(defaultextension='.txt')   #打开文件,默认扩展名是xtxt    if filename=='':   #如果没有选择        filename=None    else:        root.title('FileName:'+os.path.basename(filename))   #将文件名显示在标题栏中        textPad.delete(1.0,END)   #删除文本框中原有内容        f=open(filename,'r',encoding='UTF-8')   #获取文件中内容        textPad.insert(1.0,f.read())   #显示到文本框        f.close()def saveOtherFile():    global filename    f=filedialog.asksaveasfilename(initialfile='未命名.txt',defaultextension='.txt')   #保存文件    filename=f    root.title('FileName:' + os.path.basename(filename))    fh=open(f,'w',encoding='UTF-8')   #只写方式打开文件    msg=textPad.get(1.0,END)   #从文本框中获取内容    fh.write(msg)    fh.close()root=Tk()   #设置菜单栏root.title('记事本')root.geometry('500x500+100+100')   #widthxheight+x+ymenubar=Menu(root)root.config(menu=menubar)filemenu=Menu(menubar)   #第一个菜单栏filemenu.add_command(label='打开',accelerator='Ctrl+N',command=openFile)filemenu.add_command(label='保存',accelerator='Ctrl+T',command=saveOtherFile)menubar.add_cascade(label='文件',menu=filemenu)aboutmenu=Menu(menubar)aboutmenu.add_command(label='关于',accelerator='Ctrl+Y',command=about)menubar.add_cascade(label='帮助',menu=aboutmenu)status=Label(root,text='Ln20',bd=1,relief=SUNKEN,anchor=W)   #底部状态栏status.pack(side=BOTTOM,fill=X)lnlabel=Label(root,width=2,bg='antique white')   #左边边界栏lnlabel.pack(side=LEFT,fill=Y)textPad=Text(root,undo=True)   #设置文本框textPad.pack(expand=YES,fill=BOTH)scroll=Scrollbar(textPad)   #右边进度条栏textPad.config(yscrollcommand=scroll.set)scroll.config(command=textPad.yview)scroll.pack(side=RIGHT,fill=Y)root.mainloop()#python简易记事本from tkinter import *from tkinter import messageboxfrom tkinter import filedialogimport osfilename=''   #文件名,全局变量def about():    messagebox.showinfo('提示','这是一个消息框')def openFile():    global filename   #使用全局变量    filename=filedialog.askopenfilename(defaultextension='.txt')   #打开文件,默认扩展名是xtxt    if filename=='':   #如果没有选择        filename=None    else:        root.title('FileName:'+os.path.basename(filename))   #将文件名显示在标题栏中        textPad.delete(1.0,END)   #删除文本框中原有内容        f=open(filename,'r',encoding='UTF-8')   #获取文件中内容        textPad.insert(1.0,f.read())   #显示到文本框        f.close()def saveOtherFile():    global filename    f=filedialog.asksaveasfilename(initialfile='未命名.txt',defaultextension='.txt')   #保存文件    filename=f    root.title('FileName:' + os.path.basename(filename))    fh=open(f,'w',encoding='UTF-8')   #只写方式打开文件    msg=textPad.get(1.0,END)   #从文本框中获取内容    fh.write(msg)    fh.close()root=Tk()   #设置菜单栏root.title('记事本')root.geometry('500x500+100+100')   #widthxheight+x+ymenubar=Menu(root)root.config(menu=menubar)filemenu=Menu(menubar)   #第一个菜单栏filemenu.add_command(label='打开',accelerator='Ctrl+N',command=openFile)filemenu.add_command(label='保存',accelerator='Ctrl+T',command=saveOtherFile)menubar.add_cascade(label='文件',menu=filemenu)aboutmenu=Menu(menubar)aboutmenu.add_command(label='关于',accelerator='Ctrl+Y',command=about)menubar.add_cascade(label='帮助',menu=aboutmenu)status=Label(root,text='Ln20',bd=1,relief=SUNKEN,anchor=W)   #底部状态栏status.pack(side=BOTTOM,fill=X)lnlabel=Label(root,width=2,bg='antique white')   #左边边界栏lnlabel.pack(side=LEFT,fill=Y)textPad=Text(root,undo=True)   #设置文本框textPad.pack(expand=YES,fill=BOTH)scroll=Scrollbar(textPad)   #右边进度条栏textPad.config(yscrollcommand=scroll.set)scroll.config(command=textPad.yview)scroll.pack(side=RIGHT,fill=Y)root.mainloop()

运行效果:

Python如何实现简单的GUI程序

二、简单画图

# 画图程序import osimport tkinterimport tkinter.simpledialogimport tkinter.colorchooserimport tkinter.filedialogfrom PIL import Imagefrom PIL import ImageGrabdef openItem():    global img    filename=tkinter.filedialog.askopenfilename(title="Open",filetypes=[('Image','*.png *.gif')])    if filename:        img=tkinter.PhotoImage(file=filename)        canvas.create_image(400,300,image=img)def saveItem():    saveX=int(root.winfo_rootx())    saveY=int(root.winfo_rooty())    saveW=root.winfo_width()    saveH=root.winfo_height()    im=ImageGrab.grab((saveX,saveY,saveX+saveW,saveY+saveH))          filename=tkinter.filedialog.asksaveasfilename(title='Save',filetypes=[('Image','*.png *.gif')])    if not filename:        return    try:        if filename[filename.index('.'):] in ['.png','.gif']==False:            filename+='.png'    except:        filename+='.png'    im.save(filename)def clearItem():    for i in canvas.find_all():        canvas.delete(i)def curveType():       penType.set(1)def lineType():    penType.set(2)def rectangleType():    penType.set(3)def textType():    global userText    userText=tkinter.simpledialog.askstring(title="Please input your Words", prompt='')    penType.set(4)def eraseType():    penType.set(5)def chooseForeColor():    global foreColor        foreColor=tkinter.colorchooser.askcolor()[1]def chooseBackColor():    global backColor    backColor=tkinter.colorchooser.askcolor()[1]def onClickLeft(event):    global userText    canDraw.set(1)    X.set(event.x)    Y.set(event.y)    if penType.get()==4:        canvas.create_text(event.x,event.y,text=userText)def onMoveLeft(event):    global lastPaint,foreColor,backColor    if canDraw.get()==0:        return    if penType.get()==1:        #绘制曲线        canvas.create_line(X.get(),Y.get(),event.x,event.y,fill=foreColor)        X.set(event.x)        Y.set(event.y)    elif penType.get()==2:      #绘制直线(预览)        try:            canvas.delete(lastPaint)        except:            pass        lastPaint=canvas.create_line(X.get(),Y.get(),event.x,event.y,fill=foreColor)    elif penType.get()==3:      #绘制矩形(预览)        try:            canvas.delete(lastPaint)        except:            pass        lastPaint=canvas.create_rectangle(X.get(),Y.get(),event.x,event.y,fill=backColor,outline=foreColor)    elif penType.get()==5:      #橡皮擦        canvas.create_rectangle(event.x-5,event.y-5,event.x+5,event.y+5,fill=backColor,outline=backColor)def onReleaseLeft(event):    global lastPaint,foreColor,backColor    lastPaint=0      if penType.get()==2:         #抬起左键画直线        canvas.create_line(X.get(),Y.get(),event.x,event.y,fill=foreColor)    elif penType.get()==3:      #抬起左键就画矩形        canvas.create_rectangle(X.get(),Y.get(),event.x,event.y,fill=backColor,outline=foreColor)    canDraw.set(0)def onReleaseRight(event):    menu.post(event.x_root, event.y_root)root=tkinter.Tk()root.title("Paint")root.geometry("800x600+280+50")lastPaint=0userText=""foreColor='black'backColor='white'X=tkinter.IntVar(value=0)Y=tkinter.IntVar(value=0)canDraw=tkinter.IntVar(value=0)     #能否画图,1:能,0:不能penType=tkinter.IntVar(value=1)     #画笔类型,1:曲线,2:直线,3:矩形,4:文本,5:橡皮擦menu=tkinter.Menu(root,tearoff=0)subMenu=tkinter.Menu(menu,tearoff=0)img=tkinter.PhotoImage()canvas=tkinter.Canvas(root,bg='white',width=800,height=600)canvas.create_image(800,600,image=img)menu.add_command(label='Open',command=openItem)menu.add_command(label='Save as',command=saveItem)menu.add_separator()subMenu.add_command(label='Curve',command=curveType)subMenu.add_command(label='Line',command=lineType)subMenu.add_command(label='Rectangle',command=rectangleType)subMenu.add_command(label='Text',command=textType)subMenu.add_command(label='Erase',command=eraseType)menu.add_cascade(label='Pen Type',menu=subMenu)menu.add_separator()menu.add_command(label='Foreground Color',command=chooseForeColor)menu.add_command(label='Bakckground Color',command=chooseBackColor)menu.add_separator()menu.add_command(label='Clear',command=clearItem)canvas.bind('<Button-1>', onClickLeft)canvas.bind('<B1-Motion>',onMoveLeft)canvas.bind('<ButtonRelease-1>',onReleaseLeft)canvas.bind('<ButtonRelease-3>',onReleaseRight)canvas.pack(fill=tkinter.BOTH,expand=tkinter.YES)root.mainloop()

 运行效果:

Python如何实现简单的GUI程序

以上是“Python如何实现简单的GUI程序”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网Python频道!

--结束END--

本文标题: Python如何实现简单的GUI程序

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

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

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

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

下载Word文档
猜你喜欢
  • Python如何实现简单的GUI程序
    这篇文章主要介绍Python如何实现简单的GUI程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、记事本源码#python简易记事本from tkinter import *from...
    99+
    2023-06-29
  • Python简单的GUI程序示例详解
    目录一、记事本二、简单画图总结一、记事本 源码 #python简易记事本 from tkinter import * from tkinter import messagebox f...
    99+
    2024-04-02
  • 如何进行Python Helloworld程序的简单实现
    本篇文章为大家展示了如何进行Python Helloworld程序的简单实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。对于一个学习过编程语言的朋友来说,肯定会对Helloworld这一词汇记忆深...
    99+
    2023-06-17
  • Python如何实现简单购物车小程序
    小编给大家分享一下Python如何实现简单购物车小程序,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下要求代码# --*--coding:utf-8--*--# Author: 村雨...
    99+
    2023-06-29
  • Java如何实现简单扫雷程序
    本篇内容介绍了“Java如何实现简单扫雷程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!页面设置:框架是borderlayout,在上中下...
    99+
    2023-06-30
  • 如何在Python中实现一个简单的爬虫程序
    如何在Python中实现一个简单的爬虫程序随着互联网的发展,数据已成为当今社会最宝贵的资源之一。而爬虫程序则成为了获取互联网数据的重要工具之一。本文将介绍如何在Python中实现一个简单的爬虫程序,并提供具体的代码示例。确定目标网站在开始编...
    99+
    2023-10-22
    Python 程序 爬虫
  • C#如何实现简单订单管理程序
    这篇文章主要介绍“C#如何实现简单订单管理程序”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#如何实现简单订单管理程序”文章能帮助大家解决问题。订单管理的控制台程序,能够实现添加订单、删除订单、修...
    99+
    2023-06-30
  • Java如何实现简单的区块链程序
    本篇内容主要讲解“Java如何实现简单的区块链程序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现简单的区块链程序”吧!什么是区块链?那么,让我们先来了解一下区块链到底是什么…好吧...
    99+
    2023-06-14
  • 小程序如何实现简单的计算器
    本篇内容介绍了“小程序如何实现简单的计算器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果如下:#app.json{  ...
    99+
    2023-06-08
  • Java如何实现简单的排序
    这篇文章主要介绍Java如何实现简单的排序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于排序算法的...
    99+
    2023-06-25
  • java的GUI实现简单切换界面
    本文实例为大家分享了java GUI实现简单切换界面的具体代码,供大家参考,具体内容如下 1.关于java的GUI简单切换界面 在刚开始学习java的gui界面设计的时候因为课本上没...
    99+
    2024-04-02
  • C++如何调用简单的python程序
    目录一、基本环境的搭建二、直接在C++里面调用执行python语句三、调用python脚本文件里面的定义函数调用不含参数的函数调用含多个参数的函数总结一、基本环境的搭建 首先,用vs...
    99+
    2023-02-17
    C++调用python程序 C++调用python C++调用python
  • Python实现简单购物车小程序
    本文实例为大家分享了Python实现简单购物车小程序的具体代码,供大家参考,具体内容如下 要求 代码 # --*--coding:utf-8--*-- # Author: 村雨 ...
    99+
    2024-04-02
  • 如何利用Python实现简单C++程序范围分析
    目录1. 实验说明2. 项目使用3. 算法原理3.1 构建CFG3.2 构建Constraint Graph3.3 构建E-SSA Constraint Graph3.4 三步法3....
    99+
    2024-04-02
  • Java如何实现简单GUI登录和注册界面
    本篇内容主要讲解“Java如何实现简单GUI登录和注册界面”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现简单GUI登录和注册界面”吧!先看效果图:登陆界面:注册界面:实现代码如下...
    99+
    2023-06-30
  • Java程序单实例运行的简单实现
    目录需求实现方式代码实现第一种实现(端口控制)第二种实现(文件锁)第三种方式(端口+文件锁)需求 最近做了个java项目,功能完成后打包安装了,发现可以点开多个实例,因为桌面显示托盘...
    99+
    2024-04-02
  • 小程序如何实现简单吸顶效果
    这篇“小程序如何实现简单吸顶效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“小程序如何实现简单吸顶效果”文章吧。要求:使页...
    99+
    2023-06-30
  • python的一些简单的程序代码,python的简单程序代码
    大家好,给大家分享一下python的一些简单的程序代码,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!   Python 100个简单小例子(持续更新中) 1 编写一个计算平年还是闰年的小例子其核心是年份可以整除4和...
    99+
    2023-10-10
    python
  • 用Python实现一个简单的抽奖小程序
    目录写在前面 实现结果 1 数据拉取2 数据清洗、去重3 中奖数据抽取python 相关知识点总结写在前面  因为粉丝福利,所以想自己写一个抽...
    99+
    2023-05-12
    python抽奖系统 python随机抽奖 python抽奖游戏
  • python选择排序简单实现
    #!/usr/bin/env python3 # -*- coding: UTF-8 -*- # Date:2018-5-27 # Author:AreLIN #选择排序:每次只取一个最大或最小值的索引 import random a ...
    99+
    2023-01-31
    简单 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作