V.  ÆùÆ®

´ÙÀ½°ú °°Àº ÆùÆ® ´ÙÀ̾ó·Î±× ¹Ú½º¸¦ ±â´ëÇϰÚÁö¸¸, ¾ÆÁ÷ tkinter Àº ÆùÆ® ´ÙÀ̾ó·Î±× ¹Ú½º¸¦ Áö¿øÇÏÁö ¾Ê½À´Ï´Ù. º»ÀÎÀÌ Á÷Á¢ ¸¸µé¾î¾ß ÇÕ´Ï´Ù. ´ÜÁö ÆùÆ® ¶óÀ̺귯¸®¸¸ Áö¿øÇÕ´Ï´Ù.

 

 

ÀÓÆ÷Æ®ÇÏ¿©¾ß ÇÒ ¶óÀ̺귯¸®

 

from tkinter import font

 

 

 

ÆùÆ® ÁöÁ¤ ¹æ¹ý

 

¡¼Çü½Ä¡½

ÆùÆ®º¯¼ö=font.Font(family="ÆùÆ®", size=¼ýÀÚ, ¿É¼Ç)

°³Ã¼º¯¼ö.configure(font=ÆùÆ®º¯¼ö)

 

 

¡¼¿¹Á¦¡½

 

myFont=font.Font(family="¼­¿ïÇѰ­Ã¼ B", size=20)

contentText.configure(yscrollcommand=scrollBar.set, font=myFont)

 

 

ÆùÆ®¸¦ ÁöÁ¤Çϸé È­¸é¿¡ ÁöÁ¤µÈ ÆùÆ®·Î ³ªÅ¸³ª°í ÇÁ¸°ÅÍ·Î Ãâ·ÂÇϸé ÁöÁ¤µÈ ÆùÆ®·Î ÀμâµË´Ï´Ù.

 

 

¡¼¼Ò½º ÇÁ·Î±×·¥¡½

#File Name: Notepad_07.py

import tkinter as tk

from tkinter import Menu

import tkinter.filedialog

import os

import win32api

import win32print

import tempfile

from tkinter import font

 

 

def doFileNew():

    mainWin.title("Á¦¸ñ ¾øÀ½ - Windows ¸Þ¸ðÀå")

    contentText.delete(1.0, 'end')

 

def doFileOpen():

    myFileName = tk.filedialog.askopenfilename(initialdir="/",

        title="ÆÄÀÏ ¿­±â", filetypes=(("Text Files","*.txt"), ("All Files", "**")))

                                            

    if myFileName:

        inFile=open(myFileName,'r',encoding='utf-8')

        fileData=inFile.read()           

        contentText.insert(1.0, fileData)

        inFile.close()

    fileName=os.path.basename(myFileName)   

    mainWin.title(fileName + " - Windows ¸Þ¸ðÀå")  

 

def doFileSave():

 

    if  myFileName==None:

        myFileName = tk.filedialog.asksaveasfilename(initialdir="/",

            title="ÀúÀå", filetypes=(("Text Files","*.txt"), ("All Files", "*.*")))

       

        outFile=open(myFileName,'w',encoding='utf-8')

        fileData=contentText.get(1.0,'end')

        outFile.write(fileData)           

        outFile.close()

   

    else :

        outFile=open(myFileName,'w',encoding='utf-8')

        fileData=contentText.get(1.0,'end')

        outFile.write(fileData)           

        outFile.close()

       

        fileName=os.path.basename(myFileName)   

        mainWin.title(fileName + " - Windows ¸Þ¸ðÀå")  

 

def doFileAsSave():

    myFileName = tk.filedialog.asksaveasfilename(initialdir="/",

        title="´Ù¸¥ À̸§À¸·Î ÀúÀå", filetypes=(("Text Files","*.txt"), ("All Files", "*.*")))

   

    if myFileName:

        outFile=open(myFileName,'w',encoding='utf-8')

        fileData=contentText.get(1.0,'end')

        outFile.write(fileData)           

        outFile.close()

 

        fileName=os.path.basename(myFileName)   

        mainWin.title(fileName + " - Windows ¸Þ¸ðÀå")  

 

 

        

def doPrint():

    defaultPrinter=win32print.GetDefaultPrinter()

    fileData=contentText.get(1.0,'end')

    filename = tempfile.mktemp(".txt")

    open(filename, "w").write(fileData)

    win32api.ShellExecute(0, "print", filename,

        '"%s"' % defaultPrinter,".", 0)

 

   

 

# Create instance of Window

mainWin=tk.Tk()

 

# Set title and size

mainWin.title("Á¦¸ñ ¾øÀ½ - Windows ¸Þ¸ðÀå")

mainWin.geometry("640x480")

myFont=font.Font(family="¸¼Àº °íµñ", size=15)

 

#Creating a Menu Bar

menuBar=tk.Menu(mainWin)

mainWin.config(menu=menuBar)

 

menuFile=tk.Menu(menuBar, tearoff=0)

menuBar.add_cascade(label="ÆÄÀÏ(F)", menu=menuFile)

menuFile.add_command(label="»õ·Î ¸¸µé±â(N)", accelerator="Ctrl+N", command=doFileNew)

menuFile.add_command(label="ț ̢(W)", accelerator="Ctrl+Shift+N")

menuFile.add_command(label="¿­±â(O)...", accelerator="Ctrl+O", command=doFileOpen)

menuFile.add_command(label="ÀúÀå(S)", accelerator="Ctrl+S", command=doFileAsSave)

menuFile.add_command(label="´Ù¸¥ À̸§À¸·Î ÀúÀå(A)...", accelerator="Ctrl+Shift+S", command=doFileAsSave)

menuFile.add_separator()    

menuFile.add_command(label="ÆäÀÌÁö ¼³Á¤(U)...")                

menuFile.add_command(label="Àμâ(P)...", accelerator="Ctrl+P", command=doPrint)       

menuFile.add_separator() 

menuFile.add_command(label="³¡³»±â(X)", command=mainWin.destroy) 

 

menuEdit=tk.Menu(menuBar,tearoff=0)

menuBar.add_cascade(label="ÆíÁý(E)", menu=menuEdit)

menuEdit.add_command(label="½ÇÇà Ãë¼Ò(U)", accelerator="Ctrl+Z")

menuEdit.add_command(label="Àß¶ó³»±â(T)", accelerator="Ctrl+X")

menuEdit.add_command(label="º¹»ç(C)", accelerator="Ctrl+C")

menuEdit.add_command(label="ºÙ¿©³Ö±â(P)", accelerator="Ctrl+C")

menuEdit.add_command(label="»èÁ¦(L)", accelerator="Del", compound="left", underline=0)

menuEdit.add_separator()

menuEdit.add_command(label="BingÀ¸·Î °Ë»ö(S)", accelerator="Ctrl+E")

menuEdit.add_command(label="ã±â(F)", accelerator="Ctrl+F", compound="left")

menuEdit.add_command(label="´ÙÀ½ ã±â(N)", accelerator="F3", compound="left")

menuEdit.add_command(label="ÀÌÀü ã±â(V)", accelerator="Shift+F3")

menuEdit.add_command(label="¹Ù²Ù±â(R)", accelerator="Ctrl+H")

menuEdit.add_command(label="À̵¿(G)...", accelerator="Ctrl+G")

menuEdit.add_separator()

menuEdit.add_command(label="¸ðµÎ ¼±ÅÃ(A)...", accelerator="Ctrl+A")

menuEdit.add_command(label="½Ã°£/³¯Â¥(D)...", accelerator="F5")

 

menuFormat=tk.Menu(menuBar,tearoff=0)

menuBar.add_cascade(label="¼­½Ä(O)", menu=menuFormat)

#menuFormat.add_command(label="ÀÚµ¿ ÁÙ ¹Ù²Þ(W)")

show_LineFeed=tk.BooleanVar()

menuFormat.add_checkbutton(label="ÀÚµ¿ ÁÙ ¹Ù²Þ(W)", variable=show_LineFeed)

menuFormat.add_command(label="±Û²Ã(F)...")

 

menuView=tk.Menu(menuBar,tearoff=0)

menuBar.add_cascade(label="º¸±â(V)", menu=menuView)

 

menuEnlarge=tk.Menu(menuBar,tearoff=0)

menuView.add_cascade(label="È®´ëÇϱâ/Ãà¼ÒÇϱâ", menu=menuEnlarge)

menuEnlarge.add_command(label="È®´ë(I)", accelerator="Ctrl+´õÇϱâ")

menuEnlarge.add_command(label="Ãà¼Ò(O)", accelerator="Ctrl+»©±â")

menuEnlarge.add_command(label="È®´ëÇϱâ/Ãà¼ÒÇϱ⠱⺻°ª º¹¿ø", accelerator="Ctrl+0")

 

#menuView.add_command(label="»óÅÂÇ¥½ÃÁÙ(S)")

show_StatusBar=tk.BooleanVar()

menuView.add_checkbutton(label="»óÅÂÇ¥½ÃÁÙ(S)",variable=show_StatusBar)

 

menuHelp=tk.Menu(menuBar,tearoff=0)

menuBar.add_cascade(label="µµ¿ò¸»(H)", menu=menuHelp)

menuHelp.add_command(label="µµ¿ò¸» º¸±â(H)")

menuHelp.add_command(label="Çǵå¹é º¸³»±â(F)")

menuHelp.add_separator()  

menuHelp.add_command(label="¸Þ¸ðÀå Á¤º¸(A)")

 

#Text Box with scrollbar

contentText=tk.Text(mainWin, wrap='word')

contentText.pack(expand='yes', fill='both')

 

scrollBar=tk.Scrollbar(contentText)

#contentText.configure(yscrollcommand=scrollBar.set)

contentText.configure(yscrollcommand=scrollBar.set, font=myFont)

scrollBar.config(command=contentText.yview)

scrollBar.pack(side='right', fill='y')

 

# Start Window

mainWin.mainloop()