这个好实现,就是字体大小问题

from tkinter.filedialog import askopenfilename as aof,asksaveasfilename as asf
from tkinter.messagebox import askyesno as askyn
import tkinter as tk
fontname = ...
writer = tk.Tk()
display = tk.Tk()
widgets = []
text = tk.Text(writer)
text.grid(row=0,column=0)
cont = ''
def read_md(file):
 	with open(file) as f:
 			return f.read()
def write_md(file,cont):
 	with open(file,'w') as f:
 		f.write(cont)
def clear():
	for i in widgets:
		i.grid_forget()
def render_md():
	display.update()
	clear()
	l = 0
	for i in cont.split('\n'):
		if(i.startswith('# ')):
			lb = tk.Label(display,text=i[2:],font=(fontname,40,'bold'))
		elif(i.startswith('## ')):
			lb = tk.Label(display,text=i[3:],font=(fontname,35,'bold'))
		elif(i.startswith('### ')):
			lb = tk.Label(display,text=i[4:],font=(fontname,30,'bold'))
		elif(i.startswith('#### ')):
			lb = tk.Label(display,text=i[5:],font=(fontname,25,'bold'))
		elif(i.startswith('##### ')):
			lb = tk.Label(display,text=i[6:],font=(fontname,20,'bold'))
		elif(i.startswith('###### ')):
			lb = tk.Label(display,text=i[7:],font=(fontname,15,'bold'))
		else:
			lb = tk.Label(display,text=i,font=(fontname,15,''))
		lb.grid(row=l,column=0,sticky='w')
		widgets.append(lb)
		l += 1
def update_writer():
	global cont
	writer.update()
	cont = text.get(0.0,tk.END)
def main():
	global cont
	writer.title('writer')
	display.title('displayer')
	file = aof(title='open a markdown file')
	if(file):
		cont = read_md(file)
	text.insert(0.0,cont)
	while(1):
		try:
			update_writer()
			render_md()
		except:
			try:
				writer.destroy()
			except:
			try:
				display.destroy()
			except:
			tk.Tk().withdraw()
			if(file):
				write_md(file,cont)
			else:
				while(1):
					file = asf(title='save as ...')
					if(not file):
						if(not askyn('Do you want to keep this new document?','Do you want to keep this new document?')):
							exit()
					write_md(file,cont)
if(__name__ == '__main__'):
	main()

fontname为渲染markdown使用的字体,请自行选择。
这里简单说一下,tkinter.Label中的形参里有一个text,是一个三元组,第一项是字体,第二项是字号,第三项是格式,有bolditalicunderline等,用空格分割。

《python实现markdown编辑器-3》 python实现markdown编辑器前言开始markdown文件读取:标题前言开始markdown文件读取: import tkinter as tk def read_md(file): with open(file) as f: return f.read() def write_md(file,cont): with open(file,'w') as f: f.write(cont)非常易懂,这里不解释,如果看不懂,那还不如不看这篇文章,这篇文章的技术含量略高 其余使用tkinter,主要因为只会tkinter,wx和pyqt5不会用 什么!你没有tkinter!没关系,我的ubuntu也没有。。。 sudo apt-get install python3-tkinter 为什么?你也不看看pip能不能用(pip无法 注:Qt 是指 C++ Qt,PyQt 就是指 PyQt 在 Qt 和 PyQt 中的 QTextBrowser、QTextEdit等控件都有一个函数: ui->XXX->setMarkdown("XXX"); // Qt XXX.setMarkdown("XXX"); # PyQt 那么能不能用呢?当然是可以的,下面是一个示例:
动手写Python程序将图片嵌入Markdown 理想很丰满,现实很骨感,根据CSDN博客测试,他的编辑器无法接受太大的Markdown文本,测试500KB的文本已经有了图片显示不全的问题,这里提到的方法大家看看就好o(╥﹏╥)o,或许可以考虑下图片压缩 1 前情提要 写技术文档或者做个简单的笔记用Markdown简直在舒服不过了,但是Markdown的图片插入缺非常让人难受。目前Markdown...
### 安装Python 要使用Python,首先需要安装它。您可以前往[Python官网](https://www.python.org/)下载最新版本的Python。选择合适的版本(如Python 3.x)并进行安装。 ### 使用Python 一旦安装完成,就可以开始使用Python了。有几种使用Python的方法: - 在命令行中输入Python命令 - 使用文本编辑器(如Sublime Text)编写Python代码并运行 - 使用Python解释器交互式地输入和执行代码 要在命令行中使用Python,请在命令行窗口中输入`python`并按回车键。这将打开Python解释器,您可以在其中输入Python代码并立即看到结果。例如: $ python >>> print("Hello, World!") Hello, World! 要使用文本编辑器编写Python代码,请打开文本编辑器并创建一个新文件。将文件保存为`.py`文件(例如`hello.py`),并在文件中输入Python代码。然后,在命令行中使用`python`命令运行该文件: $ python hello.py Hello, World! ### Python基础知识 Python是一种面向对象的编程语言。