파이썬의 메모장 복제.
7011 단어 projectpythonguipythonproject
다음과 같이 필요한 모든 모듈을 먼저 가져옵니다.
from tkinter import *
from tkinter.filedialog import asksaveasfilename, askopenfilename
from tkinter.messagebox import *
import os
지금 이 모듈들을 모두 가져오십시오. 왜냐하면 우리는 본문 뒤에 그것들을 필요로 하기 때문입니다.Tkinter 모듈은 모든 필요한 모듈과 방법을 갖추고 있으며, 이러한 모듈과 방법은 모두 사전에 제작되어 수시로 사용할 수 있다.이것은 내가 파이톤으로 코드를 작성하는 것을 좋아하는 곳이다. 너는 라이브러리가 하나 있고, 모든 라이브러리가 있는데, 이것은 개발 속도를 크게 가속화시켰다.
Tkinter에서 간단한 창을 만드는 방법을 살펴보겠습니다.
# Creating a window for our application.
window = Tk()
window.mainloop()
이 코드만 실행하면 다음과 같은 결과를 얻을 수 있습니다.이것은 Tkinter 중의 간단한 창입니다. 주변에서 놀 수 있습니다. 만약 Tkinter 초보자라면, 어떤 것들을 바꿀 수 있습니다.mainloop () 을 사용하지 않은 상태에서 코드를 실행해 보세요. 무슨 일이 일어날지 보십시오.
화면에 아무런 내용도 표시되지 않았습니까?gui를 실행할 때, 창을 수동으로 닫거나 종료할 때까지 프로그램이 무한정 실행하고 실행하기를 원하기 때문입니다.
이제 이것은 간단한 일반 창입니다. 우리의 취향에 따라 그것을 조정하기 시작합시다.
Windows를 사용하여 창의 제목을 쉽게 변경할 수 있습니다.title()는 다음과 같습니다.
# Defining the title of our Window.
window.title('Notepad')
지금 우리가 필요로 하는 다음 일은 텍스트 상자입니다. 우리는 그중에 몇 가지를 입력할 수 있습니다. 그렇지 않으면 우리의 텍스트 편집기가 무슨 소용이 있습니까!다음 그림과 같이 텍스트 하나만 만듭니다.
# Creating a variable for the text inputs so that later on we can retrieve the data from it.
editor = Text()
# Now You need to place this input Text box on your window.
editor.pack(expand= True, fill= 'both')
expand 매개 변수는 True로 설정되어 있으며, 텍스트 상자의 작은 위젯을 두 방향 (즉 수평 방향과 수직 방향) 으로 채웁니다.이렇게 하는 것은 텍스트 입력이 전체 창을 덮어쓰기를 원하기 때문에, 창의 크기를 축소, 최대화, 조정하면 그에 따라 축소됩니다.너는 먼저 편집기를 만들어 볼 수 있다.패키지 () 다음에 창 크기를 조정해 보십시오. 이런 식으로 변경 사항을 보면 무슨 일이 일어났는지, 우리가 왜 이러는지 알 수 있습니다.
이제 아웃타이틀이 있는 간단한 창이 생겼습니다. 이 창에서 창 안의 어느 곳에서든 내용을 입력할 수 있습니다.
전형적인 수첩에 메뉴 표시줄이 있기 때문에 메뉴 표시줄을 만듭니다.
# Defining a MenuBar. In Menu pass in the name of your window mine happens to be window (Which we declared earlier window = Tk() ).
menu_bar = Menu(window)
# Creating a File Menu for our menubar.
# For the first time just run this code without the tearoff= False and observe what you get.
file_menu = Menu(menu_bar, tearoff= False)
# Adding commands to our file_menu.
# Note: the open file is a function just pass the function without the parenethesis so whenever you choose that option from the file menu that action will be performed.
file_menu.add_command(label= 'open', command= open_file)
# Now, Let's add a cascade to our menubar.
menu_bar.add_cascade(label= 'File', menu= file_menu)
# Now our menubar is ready but wait we didn't tell the window that hey we have a menubar. So let's do that.
window.config(menu = menu_bar)
이 코드를 실행하기 전에 오픈 file () 이라는 함수를 정의하고 패스를 기록해야 합니다. 지금은 아무것도 할 필요가 없기 때문입니다.다음 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
이제, 우리가 이것들을 완성한 후에, 우리의 열기 옵션에 명령을 추가합시다.
이 윈도우즈 메모리 프로그램에서처럼 파일 대화상자를 열려면 Tkinter를 사용합니다.파일 대화 상자는 다음과 같습니다.
def open_file():
path = askopenfilename()
# Now since we have the path of the file that we want to open let's import it's contents in our Notepad app.
with open(path, 'r') as file:
text = file.read()
# We have the contents of that file let's displat it on our window.
# First delete all the existing contents from your window so that we can load the stuff fresh
editor.delete('1.0', END)
editor.insert('1.0', text)
이 프로그램을 실행해서 유효한지 확인하십시오.여기서 우리는 성공적으로 파일 대화상자를 열었고, 이 파일을 우리의 텍스트 편집기로 열었다.
또한 Yoy는 전통적인 메모장에 버튼이 연결되어 있으며, 'Ctrl + s' 같은 작업을 수행하여 작업을 저장하는 데 사용되기 때문에, 이 기능을 프로그램에 추가합니다.
# Applying keybindings to our app.
# Also note that if you want to apply keybindings to a function you need to pass an argument named event to that functions as follows:
def open_file(event):
path = askopenfilename()
# Now since we have the path of the file that we want to open let's import it's contents in our Notepad app.
with open(path, 'r') as file:
text = file.read()
# We have the contents of that file let's displat it on our window.
# First delete all the existing contents from your window so that we can load the stuff fresh
editor.delete('1.0', END)
editor.insert('1.0', text)
window.bind('<Control-o>', open_file)
# This will bind the keys 'ctrl + o' to our open file function.
이것은 다른 부분을 쉽게 이해할 수 있도록 내가 깊이 있게 설명하고자 했던 일의 기본 개술이다.그 밖에 어떤 것을 세우는 가장 좋은 방법은 잘못을 저지르는 것이지만 그 속에서 교훈을 받아들여 끊임없이 성장해야 한다.
나는 여기에서 모든 함수를 설명할 수 있지만, 만약 내가 이렇게 한다면, 너는 내가 관련된 주제에 관한 유한한 내용만 알게 될 것이다. 이것은 매우 길고 시간이 걸릴 것이다.반대로, 나는 아래에 나의 코드를 남겨서 모두가 읽을 수 있도록 할 것이다. 그리고 너는 너의 응용 프로그램에서 이러한 기능을 실현할 수 있다. 만약 네가 이렇게 한다면, 너는 나보다 더 좋은 기능을 추가할 수 있고, 너는 더 많은 것을 배울 수 있을 것이다.
내 Github 계정에서 코드 전체를 볼 수 있습니다. 이 컴퓨터의 윈도우즈와 같은 기능을 하려고 노력했습니다.
마찬가지로, 나는 리플릿 노트를 첨부했는데, 너는 이곳에서 나의 코드와 출력을 실행할 수 있다.
다음은 내 애플리케이션의 화면 캡처본입니다.
github:
pratik6217 / 메모장
Replit 놀이터:
제 댓글을 읽어주셔서 감사합니다. 마음에 드셨으면 좋겠습니다:)
Reference
이 문제에 관하여(파이썬의 메모장 복제.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pratik6217/notepad-clone-in-python-2k0o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)