tkinter配合customtkinter制作记事本

为什么不直接用tkinter模块,还要加上customtkinter模块呢?当然是因为好看啊!python内置的tkinter模块在MacOS系统上的界面还算可以,但是到了Windows系统就会显得很丑,而用customtkinter还能让两个平台之间页面差异看起来不会很大。其实之前用MacOS做过一个用到tkinter中Menu类的记事本,但是我发现菜单类在MacOS和Windows上的用法还有点不一样,总之就是用起来比较难受,所以还是用些customtkinter来优化一下界面,应该可以说是兼容性比较好,customtkinter的控件在Windows和MacOS上的差距不会很大,而tkinter就。。

想要学习customtkinter的可以去github上下载压缩包:https://github.com/TomSchimansky/CustomTkinter

废话少说吧,上代码:

"""
Author: Gooder Chen
Date: 2023.1.17
"""
from customtkinter import *
from tkinter.filedialog import *
from tkinter.messagebox import *


help = """File: 

<Control+N> to create a new window;
<Control+O> to open a file;
<Control+S> to save;
<Shift+Control+S> to save as a file;

Edit:

<Control+Z> to undo;
<Shift+Control+Z> to redo;



AUTHOR: Gooder Chen
DATE: 2023/1/19"""


class App(CTk):
    def __init__(self):
        super().__init__()
        # get the const
        self.SCREEN_WIDTH = self.winfo_screenwidth()
        self.SCREEN_HEIGHT = self.winfo_screenheight()
        self.WINDOW_WIDTH = self.SCREEN_WIDTH // 2
        self.WINDOW_HEIGHT = self.SCREEN_HEIGHT // 2

        # variable
        self.current_file = None
        self.old_text = None
        self.old_text2 = None

        # window configure
        self.minsize(300, 300)
        self.maxsize(self.SCREEN_WIDTH, self.SCREEN_HEIGHT)
        self.title("UNKNOWN")
        self.center_window()
        self.grid_rowconfigure(0, weight=1)
        self.grid_columnconfigure(0, weight=1)

        # tabview configure
        self.tabview = CTkTabview(self, 
                              
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
您可以按照以下步骤使用PythonTkinter编写一个记事本: 1. 导入Tkinter模块和其他必要的模块。 2. 创建一个主窗口,并设置窗口的标题和大小。 3. 创建一个文本框,用于用户输入和编辑文本。 4. 创建菜单栏和菜单项,包括文件、编辑和帮助等选项。 5. 添加菜单项的功能,例如打开、保存、剪切、复制、粘贴和关于等功能。 6. 将菜单栏添加到主窗口中。 7. 将文本框添加到主窗口中,并设置其位置和大小。 8. 运行主循环,使窗口保持打开状态。 下面是一个简单的Python Tkinter记事本的代码示例: ``` import tkinter as tk from tkinter import filedialog class Notepad: def __init__(self, master): self.master = master master.title("记事本") self.textarea = tk.Text(master, undo=True) self.textarea.pack(fill=tk.BOTH, expand=True) self.create_menu() def create_menu(self): menubar = tk.Menu(self.master) filemenu = tk.Menu(menubar, tearoff=0) filemenu.add_command(label="打开", command=self.open_file) filemenu.add_command(label="保存", command=self.save_file) filemenu.add_separator() filemenu.add_command(label="退出", command=self.master.quit) menubar.add_cascade(label="文件", menu=filemenu) editmenu = tk.Menu(menubar, tearoff=0) editmenu.add_command(label="撤销", command=self.textarea.edit_undo) editmenu.add_command(label="重做", command=self.textarea.edit_redo) editmenu.add_separator() editmenu.add_command(label="剪切", command=self.textarea.event_generate("<<Cut>>")) editmenu.add_command(label="复制", command=self.textarea.event_generate("<<Copy>>")) editmenu.add_command(label="粘贴", command=self.textarea.event_generate("<<Paste>>")) menubar.add_cascade(label="编辑", menu=editmenu) helpmenu = tk.Menu(menubar, tearoff=0) helpmenu.add_command(label="关于", command=self.show_about) menubar.add_cascade(label="帮助", menu=helpmenu) self.master.config(menu=menubar) def open_file(self): file_path = filedialog.askopenfilename() if file_path: with open(file_path, "r") as f: self.textarea.delete("1.0", tk.END) self.textarea.insert(tk.END, f.read()) def save_file(self): file_path = filedialog.asksaveasfilename() if file_path: with open(file_path, "w") as f: f.write(self.textarea.get("1.0", tk.END)) def show_about(self): tk.messagebox.showinfo("关于", "这是一个简单的记事本程序。") root = tk.Tk() notepad = Notepad(root) root.mainloop() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值