Рубрики
Без рубрики

Блокнот клон в Python.

Сегодня давайте посмотрим, как вы можете построить свой собственный блокнот в Python, используя модуль Tkinter и Позже мы … Tagged Python, Project, GUI, PythonProject.

Сегодня давайте посмотрим, как вы можете построить свой собственный блокнот в Python, используя модуль TKinter, а затем мы даже преобразуем эту программу в исполняемый файл .exe, чтобы мы запустили его как приложение, и не нужно запускать его снова и снова Терминал или IDE.

Давайте начнем, сначала импортируйте все необходимые модули следующим образом:

from tkinter import *
from tkinter.filedialog import asksaveasfilename, askopenfilename
from tkinter.messagebox import *
import os

На данный момент импортируйте все эти модули, поскольку мы будем нуждаться в них позже в этой статье. Модуль Tkinter имеет все необходимые модули и методы, необходимые предварительно сделанные и готовые к использованию. Это то, что мне нравится в кодировке в Python, у вас есть библиотека для каждого и все, что ускоряет развитие.

Давайте сначала посмотрим, как сделать простое окно в TKinter:

# Creating a window for our application.
window = Tk()

window.mainloop()

Просто запустите этот код, вы получите что-то подобное:

Это простое окно в TKinter, вы можете играть вокруг него, и если вы новичок в TKinter, вы можете изменить что-нибудь, попробуйте запустить код без MainLoop () и посмотреть, что происходит.

Ничего не появлялось на вашем экране? Это потому, что когда мы запускаем графический интерфейс, мы хотим, чтобы наше приложение бегать бесконечно и выполнять определенные задачи, пока окно не будет закрыто или не вышло.

Теперь это простое простое окно, давайте начнем настроить его немного в соответствии с нашими предпочтениями. Вы можете легко изменить заголовок вашего окна, используя Window.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')

Развернуть аргумент устанавливается на true, и мы заполним виджет текстового поля в обоих направлениях I.e горизонтально, так и вертикально. Это сделано, потому что мы хотим, чтобы наш входной виджет текстового текста охватывает все окно, поэтому, когда мы сообщаем или максимизируем или изменить размер нашего окна, соответственно. Сначала вы можете попробовать, просто делая редактор. Pack (), а затем попытайтесь изменить размер окна и увидеть изменения таким образом, вы узнаете, что происходит и почему мы делаем такие вещи.

Теперь у нас есть простое окно с названием OUT и в этом окне, мы можем ввести что-нибудь в любом месте в окне.

Теперь давайте создадим меню, как типичный блокнот имеет один:

# 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)

Прежде чем запустить этот код, пожалуйста, убедитесь, что определите функцию с именем Open_File (), и напишите через нее, как сейчас, нам не нужно ничего делать. Запустите этот код, вы получите что-то подобное:

Теперь, как мы закончили с этим, добавим некоторые команды для нашего открытого варианта. Чтобы открыть диалоговое окно «Файл», как мы имеем в наших местных приложении Windows Notepad, мы используем TKinter.FileDialog следующим образом:

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)

Запустите это и проверьте, работает ли это или нет.

Здесь мы успешно открыли диалоговое окно файла и открыли этот файл для нас в наш текстовый редактор !!

Кроме того, вы, возможно, заметили, что традиционный блокнот имеет ключевые привязки для задач, таких как «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('', open_file)

# This will bind the keys 'ctrl + o' to our open file function.

Это был базовый обзор вещей, которые я пытался подробно объяснить, так что остальные части могут быть легко поняты. Кроме того, лучший способ построить что-то – делать ошибки, но учиться у них и расти. Я могу объяснить каждую и каждую функцию здесь, но это будет слишком длинным и трудоемким, если я делаю Итак, вы узнаете только ограниченные вещи о темах, которые я охвачу. Вместо этого я оставлю свой код ниже, чтобы вы пройдете, и тогда вы сможете реализовать эти функции в вашем приложении, также вы можете даже добавить больше и лучшие возможности, чем я, если вы решите сделать это таким образом, и сумма вещей, которые вы, узнаете, будут намного выше.

Вы можете проверить весь код в моей учетной записи GitHub, я внедрил много функций, которые стараются сохранить его как одинаковую, так как у нас в наших родных окнах. Также ниже, что я приложил Rext Notebook, где вы можете запустить свой код и вывод здесь, я.

Вот наши несколько скриншотов из моего приложения, чтобы вы могли мотивировать:

Github:

Pratik6217/Блокнот

Заполнение детской площадки:

Спасибо за чтение моего поста Надеюсь, тебе понравилось:)

Оригинал: “https://dev.to/pratik6217/notepad-clone-in-python-2k0o”