我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python如何实现简单的GUI程序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python如何实现简单的GUI程序

这篇文章主要介绍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程序”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python如何实现简单的GUI程序

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

下载Word文档

猜你喜欢

Python如何实现简单的GUI程序

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

Python如何实现的简单购物车程序

购物车程序需求:用户输入购物预算展示商品列表用户购买商品,每次购买后提示用户购买信息和剩余预算购物完成后打印购物花费和购物清单,并将商品从原列表移除实现代码如下:# 正整数校验函数 def is_positive_int(input_num
2022-06-02

如何进行Python Helloworld程序的简单实现

本篇文章为大家展示了如何进行Python Helloworld程序的简单实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。对于一个学习过编程语言的朋友来说,肯定会对Helloworld这一词汇记忆深
2023-06-17

Python如何实现简单购物车小程序

小编给大家分享一下Python如何实现简单购物车小程序,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下要求代码# --*--coding:utf-8--*--# Author: 村雨import pprintpr
2023-06-29

python实现简单的聊天小程序

概要 这是一个使用python实现一个简单的聊天室的功能,里面包含群聊,私聊两种聊天方式.实现的方式是使用套接字编程的一个使用TCP协议 c/s结构的聊天室 实现思路 x01 服务端的建立 首先,在服务端,使用socket进行消息的接受,每
2022-06-02

C#如何实现简单订单管理程序

这篇文章主要介绍“C#如何实现简单订单管理程序”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#如何实现简单订单管理程序”文章能帮助大家解决问题。订单管理的控制台程序,能够实现添加订单、删除订单、修
2023-06-30

Java如何实现简单扫雷程序

本篇内容介绍了“Java如何实现简单扫雷程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!页面设置:框架是borderlayout,在上中下
2023-06-30

如何在Python中实现一个简单的爬虫程序

如何在Python中实现一个简单的爬虫程序随着互联网的发展,数据已成为当今社会最宝贵的资源之一。而爬虫程序则成为了获取互联网数据的重要工具之一。本文将介绍如何在Python中实现一个简单的爬虫程序,并提供具体的代码示例。确定目标网站在开始编
2023-10-22

小程序如何实现简单的计算器

本篇内容介绍了“小程序如何实现简单的计算器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果如下:#app.json{ "pages":
2023-06-08

Java如何实现简单的区块链程序

本篇内容主要讲解“Java如何实现简单的区块链程序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现简单的区块链程序”吧!什么是区块链?那么,让我们先来了解一下区块链到底是什么…好吧
2023-06-14

Java如何实现简单的排序

这篇文章主要介绍Java如何实现简单的排序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于排序算法的
2023-06-25

C++如何调用简单的python程序

这篇文章主要介绍了C++如何调用简单的python程序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-17

Java如何实现简单GUI登录和注册界面

本篇内容主要讲解“Java如何实现简单GUI登录和注册界面”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现简单GUI登录和注册界面”吧!先看效果图:登陆界面:注册界面:实现代码如下
2023-06-30

Python实现一个简单的验证码程序

老师讲完random函数,自己写的,虽然和老师示例的不那么美观,智能,但是也自己想出来的,所以记录一下,代码就需要自己不断的自己练习,实战,才能提高啊!不然就像我们这些大部分靠自学的人,何时能学会。还有就是,这次听老师的,把自己的代码添加注
2022-06-04

小程序如何实现简单吸顶效果

这篇“小程序如何实现简单吸顶效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“小程序如何实现简单吸顶效果”文章吧。要求:1.
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录