呵呵,又是我

没错,这个其实并不难,都是内置模块,完全不用担心安装不了所需库的烦恼

额额,上代码了啊!pycharm里运行杠杠滴

    import tkinter as tkfrom tkinter import *from tkinter.scrolledtext import ScrolledTextfrom tkinter.filedialog import *import idlelib.colorizer as idcimport idlelib.percolator as idpdef PythonIDEA(title:str=...) -> None:"""Return None,run python codes"""root = tk.Tk()root.title(str(title))root.geometry('1300x900')root.iconphoto(False,                 PhotoImage(file="C:\\Users\\wsz\\PycharmProjects\\pycodes\\pycodes\\codes.png"))frame = tk.Frame(root)button = tk.Button(frame, text='Exit IDEA',bg='#252424',fg='white')button1 = tk.Button(frame, text='New file',bg='#252424',fg='white')button2 = tk.Button(frame, text='Open file',bg='#252424',fg='white')button3 = tk.Button(frame, text='Save file',bg='#252424',fg='white')button4 = tk.Button(frame, text=' ▶ ',bg='#252424',fg='#41cc32')button5 = tk.Button(frame, text='Clean python 3.10',bg='#252424',fg='white')button6 = tk.Button(frame, text=' ■ ', bg='#252424',fg='#f50000')button.pack(side=tk.LEFT)button1.pack(side=tk.LEFT)button2.pack(side=tk.LEFT)button3.pack(side=tk.LEFT)button4.pack(side=tk.LEFT)button6.pack(side=tk.LEFT)button5.pack(side=tk.RIGHT)frame.pack(side=tk.TOP, fill=tk.BOTH)global textPadtextPad = ScrolledText(bg='#252424',fg='black',font=('黑体',16))textPad.pack(fill=tk.BOTH, expand=1)textPad.focus_set()global filenamefilename = 'hellow_world.py'def btnfunc01():global textPad, filenametextPad.delete(1.0, tk.END)filename = 'hellow_world.py'def btnfunc02():global textPad, filenamefilename2 = askopenfilename(defaultextension='.py')if filename2 != '':textPad.delete(1.0, tk.END)f = open(filename2, 'r', encoding='utf-8', errors='ignore')textPad.insert(1.0, f.read())f.close()filename = filename2def btnfunc03():global textPad, filenamefilename = asksaveasfilename(initialfile=filename, defaultextension='.py')if filename != '':fh = open(filename, 'w', encoding='utf-8', errors='ignore')msg = textPad.get(1.0, tk.END)fh.write(msg)fh.close()button['command'] = lambda: root.destroy()button1['command'] = lambda: btnfunc01()button2['command'] = lambda: btnfunc02()button3['command'] = lambda: btnfunc03()frame2 = tk.LabelFrame(root, text='python 3.10', height=100)frame2.pack(fill=tk.BOTH, expand=1)global textMesstextMess = ScrolledText(frame2, bg='#252424', height=10)textMess.pack(fill=tk.BOTH, expand=1)def clearMess():global textMesstextMess.delete(1.0, tk.END)def colorprint(txt, color='black'):global textMessif textMess != None:if color != 'black':textMess.tag_config(color, foreground=color)textMess.insert(tk.END, txt, color)textMess.see(tk.END)def goto():global textPad, textMesstry:msg = textPad.get(1.0, tk.END)mg = globals()ml = locals()exec(msg, mg, ml)except Exception as e:colorprint('\n'+str(e)+'\n','red')def key(event):goto()button4['command'] = lambda: goto()button5['command'] = lambda: clearMess()root.bind('<F11>',key)idc.color_config(textPad)textPad.focus_set()textPad.config(bg='white',fg='black')p = idp.Percolator(textPad)d = idc.ColorDelegator()p.insertfilter(d)root.mainloop()return None

运行截图:

是不是很nice?

但是,那个左上角标题前的图表,你是要改一改的,不然会报错

--------------- end -----------------------------------------------------------------------------------------------------------

用tkinter做一个代码编辑器(语法高亮,直接运行)相关推荐

  1. 手把手带你实现Markdown编辑器语法高亮

    如果喜欢不如给个star鼓励一下:ZYMarkdownEditor 什么是正则表达式? iOS开发如何使用正则表达式? 使用正则表达式匹配Markdown 性能劣势? 配合YYTextView实现语法 ...

  2. WPF 用 AvalonEdit 开发简单的代码编辑器 支持高亮自动提示

    用 WPF 开发一个代码编辑器的难度很低,因为行业里面有很多小伙伴开发过,这些小伙伴将自己的代码开源了,发布到 NuGet 上,所以让我开发一个代码编辑器的难度实在太低.在不要有奇特的要求情况下,通过 ...

  3. CSDN 代码不能语法高亮的原因

    CSDN代码不能语法高亮的原因探索 1.找原因 昨天写完博客发现其中代码不能高亮,本以为是写的格式出了问题.反复修改之后依然无法解决,于是打开源码查看: 打开代码对应的标签源码如下图所示: 其中对应代 ...

  4. ue编辑器c语言语法高亮文件,自己动手做 UEStudio/UltraEdit 的语法高亮文件 (*.uew)...

    自己一直比较习惯用 UEStudio 来编写 C/C++ 文件,因为 Visual Studio 2010 实在太大了,我的 T400 都跑的费劲,所以一般我只用它来编译和调试.但是可惜的是 UESt ...

  5. python代码雨在桌面实现_今天七夕节,外面下着大雨,用Python的tkinter做一个下爱心雨的特效,发给妹子...

    正文 今天七夕,还下着雨,刚好想做一个下着爱心雨的特效 准备图片素材 1.美图秀秀找一个爱心图,大小就50*50就可以,生成的是一个png格式文件 2.由于canvas.create_image只支持 ...

  6. mfc c语言 编辑器,语法高亮编辑控件Scintilla在MFC中的简单使用

    项目中要使用代码编辑器,搜索之后,发现了强大的编辑器控件Scintilla. 1.简介 Scintilla是一款开源的语法高亮编辑器控件,官方网站:http://www.scintilla.org/. ...

  7. 在word中使用notepad++实现代码的语法高亮

    转载自:http://blog.csdn.net/woohello/article/details/7621651 有时写文档时需要将代码粘贴到word中,但直接粘贴到word中的代码虽能保持换行与缩 ...

  8. 代码编辑器语法着色功能实现-Java版

    引言 最近在整理代码时,找到了去年写的一个编辑器语法着色功能的代码.想来刚刚完成的时候,就想着能够公布出来,与大家交流.但直到现在仍寂寞的待在文件夹的角落里,颇有点明珠暗投的意思.自己能理解简单,通过 ...

  9. python 用tkinter 做一个简易番茄钟

    之前捣鼓树莓派时,要求做一个番茄钟,但最后就只是搞成一个与树莓派没啥关系的py程序,虽然简陋,但就此记录一下自学的成果. 程序实现番茄工作法:25分钟工作,5分钟休息 完成一次番茄工作时间,就记一个番 ...

最新文章

  1. 云栖专辑|阿里开发者们的第二个感悟:PG大V德哥的使命感与开放心态
  2. 使用 JMeter 进行压力测试
  3. Android10.0 Binder通信原理(九)-AIDL Binder示例
  4. Ubuntu 10.10从零开始建立android 2.2 froyo开发环境
  5. 【DBMS 数据库管理系统】数据库 体系化环境 ( 数据库体系化环境简介 | 四层体系化环境 | 数据集市 )
  6. Oracle海量数据优化-01分区的渊源
  7. Angular中使用HttpClientModule模块实现get请求数据和post提交数据
  8. JZOJ 5244. 【NOIP2017模拟8.8A组】Daydreamin ' (daydream)
  9. sklearn集成学习概述
  10. 图:图的邻接矩阵创建、深度优先遍历和广度优先遍历详解
  11. 高仿真机器人助力临床医学发展
  12. 运用AARRR模型对App进行系统性的数据分析
  13. 2009年度工作安排计划
  14. 修改hadoop配饰文件文件后导致hive无法找到原有的dfs文件
  15. JVM监控及诊断工具命令行篇之jstatd
  16. 三菱FX3U 485ADP与东元TECO变频器N310通讯程序
  17. python3实现bicubic(双三次插值)重建四倍放大图像
  18. Spring中AOP及ReflectiveMethodInvocation逻辑简析
  19. 【练习】Building a Hypermedia-Driven RESTful Web Service
  20. python 微信投票脚本_Python自动化刷投票脚本开发,微信投票再也不需要发红包了...

热门文章

  1. Golang - bufio 包
  2. arm学习之基本汇编指令
  3. windows下更改中文用户名为英文
  4. 清新小学生文明礼仪PPT模板
  5. Pytorch TextCNN实现中文文本分类(附完整训练代码)
  6. Matplotlib和Seaborn(离散数据的图表选择与一些使用技巧)
  7. 简单高效记账本的具体操作方法
  8. Android实时语音聊天
  9. 关于MySQL外键的设置
  10. 【Face Recognition人脸识别】3. 单张图片人脸识别