午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

python代碼高亮小程序4

 nxhujiee 2023-06-07 發(fā)布于寧夏
  1. "python代碼高亮小程序4"  
  2.   
  3. import tkinter as tk  
  4. from tkinter import scrolledtext  
  5. from tkinter import messagebox  
  6. from tkinter import ttk  
  7. from pygments import highlight  
  8. from pygments.lexers import PythonLexer  
  9. from pygments.formatters import HtmlFormatter  
  10. import webbrowser  
  11.   
  12.   
  13. class Application(tk.Frame):  
  14.     def __init__(self, master=None):  
  15.         super().__init__(master)  
  16.         self.master = master  
  17.         self.master.title("Python代碼轉(zhuǎn)換成HTML格式高亮文本")  
  18.         self.master.geometry("1400x800")  
  19.         self.create_widgets()  
  20.   
  21.     def create_widgets(self):  
  22.         # 左邊輸入框  
  23.         self.input_text1 = scrolledtext.ScrolledText(self.master, width=80, height=20)  
  24.         self.input_text1.grid(row=0, column=0, padx=10, pady=10)  
  25.   
  26.         # 左邊輸出框  
  27.         self.output_text = scrolledtext.ScrolledText(self.master, width=80, height=20)  
  28.         self.output_text.grid(row=1, column=0, padx=10, pady=10)  
  29.   
  30.         # 右邊預(yù)覽框  
  31.         self.preview_frame = tk.Frame(self.master, width=400, height=560)  
  32.         self.preview_frame.grid(row=0, column=1, rowspan=2, padx=10, pady=10)  
  33.         self.preview_text = tk.Text(self.preview_frame, width=60, height=40)  
  34.         self.preview_text.pack(fill="both", expand=True)  
  35.   
  36.         # 粘貼源碼按鈕  
  37.         self.paste_button = ttk.Button(self.master, text="粘貼源碼", command=self.paste_code)  
  38.         self.paste_button.grid(row=2, column=0, padx=10, pady=10, sticky="w")  
  39.   
  40.         # 轉(zhuǎn)為HTML按鈕  
  41.         self.convert_button = ttk.Button(self.master, text="轉(zhuǎn)為HTML", command=self.convert_to_html)  
  42.         self.convert_button.grid(row=2, column=0, padx=10, pady=10, sticky="n")  
  43.   
  44.         # 復(fù)制HTML按鈕  
  45.         self.copy_button = ttk.Button(self.master, text="復(fù)制HTML", command=self.copy_html)  
  46.         self.copy_button.grid(row=3, column=0, padx=10, pady=10, sticky="e")  
  47.   
  48.         # 預(yù)覽網(wǎng)頁按鈕  
  49.         self.preview_button = ttk.Button(self.master, text="預(yù)覽網(wǎng)頁", command=self.preview_web)  
  50.         self.preview_button.grid(row=3, column=0, padx=10, pady=10, sticky="s")  
  51.   
  52.     def paste_code(self):  
  53.         self.input_text1.delete(1.0, tk.END)  
  54.         self.input_text1.insert(tk.END, self.master.clipboard_get())  
  55.   
  56.     def convert_to_html(self):  
  57.         code = self.input_text1.get(1.0, tk.END)  
  58.         if not code.strip():  
  59.             messagebox.showerror("錯(cuò)誤""請(qǐng)輸入Python代碼")  
  60.             return  
  61.         html = highlight(code, PythonLexer(), HtmlFormatter())  
  62.         self.output_text.delete(1.0, tk.END)  
  63.         self.output_text.insert(tk.END, html)  
  64.   
  65.     def copy_html(self):  
  66.         html = self.output_text.get(1.0, tk.END)  
  67.         if not html.strip():  
  68.             messagebox.showerror("錯(cuò)誤""請(qǐng)先轉(zhuǎn)換為HTML")  
  69.             return  
  70.         self.master.clipboard_clear()  
  71.         self.master.clipboard_append(html)  
  72.         messagebox.showinfo("提示""已復(fù)制HTML到剪貼板")  
  73.   
  74.     def preview_web(self):  
  75.         html = self.output_text.get(1.0, tk.END)  
  76.         if not html.strip():  
  77.             messagebox.showerror("錯(cuò)誤""請(qǐng)先轉(zhuǎn)換為HTML")  
  78.             return  
  79.         with open("preview.html""w", encoding="utf-8") as f:  
  80.             f.write(f"<style type='text/css'>{HtmlFormatter().get_style_defs('.highlight')}</style> ")  
  81.             f.write(html)  
  82.         webbrowser.open("preview.html")  
  83.   
  84.   
  85. if __name__ == '__main__':  
  86.     root = tk.Tk()  
  87.     app = Application(master=root)  
  88.     app.mainloop()  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多