Сделать Блокнот с помощью Tkinter

| | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Для создания этой записной книжки в вашей системе уже должны быть установлены Python 3 и Tkinter. Вы можете загрузить соответствующий пакет Python в соответствии с требованиями вашей системы. После того, как вы успешно установили Python, вам необходимо установить Tkinter (пакет с графическим интерфейсом для Python).

Используйте эту команду для установки Tkinter:

pip install python-tk 

Импорт Tkinter:


< tbody>

import tkinter

import os

from tkinter import *


# Чтобы получить место выше для поста

from tkinter.messagebox import *


# Чтобы открыть используемый диалог при необходимости

from tkinter.filedialog import *

Примечание. Окно сообщений используется для написания сообщения в белом поле с именем Блокнот, а Диалоговый файл используется для отображения / em> диалогового окна, когда вы открыть файл из любой точки вашей системы или сохранить файл в определенной позиции или месте.

Добавьте меню:

# Добавить элементы управления (виджет)


self .__ thisTextArea.grid (sticky = N + E + S + W)


# Открыть новый файл

self .__ thisFileMenu.add_command (метка = <класс кода = "string"> "Новый" ,

команда = self .__ newFile)


# Чтобы открыть существующий файл

self .__ thisFileMenu.add_command (label = "Открыть" ,

команда = self .__ openFile)


# Сохранить текущий файл

self .__ thisFileMenu.add_command (метка = "Сохранить" ,

command = self .__ saveFile)


# Создать строку в диалоговом окне

self .__ thisFileMenu.add_separator ()


# Чтобы остановить

self .__ thisFileMenu.add_command (метка = "Exit" ,

команда = self .__ quitApplication)

self .__ thisMenuBar.add_cascade ( label = " Файл" ,

menu = self .__ thisFileMenu)


# Чтобы добавить обводку

self .__ thisEditMenu.add_command (метка = "Вырезать" ,

команда = self .__ cut)


# Чтобы дать функцию копирования

self .__ thisEditMenu.add_command (label = "Копировать" ,

команда = self .__ copy )


# Чтобы добавить функцию вставки

self .__ thisEditMenu.add_command (метка = "Вставить" ,

command = self .__ paste)


# Чтобы разрешить редактирование

self .__ thisMenuBar.add_cascade (label = "Редактировать" ,

меню = self .__ thisEditMenu)


# Чтобы создать функцию описания блокнота

self .__ thisHelpMenu.add_command (метка = " О блокноте " ,

command = self .__ showAbout )

self .__ thisMenuBar.add_cascade (метка = "Справка" ,

menu = self .__ thisHelpMenu)

< br>

self .__ root.config (menu = self .__ thisMenuBar)


self .__ thisScrollBar.pack (side = СПРАВА, заполните = Y)


# Полоса прокрутки будет настроена автоматически
# по содержимому

self .__ thisScrollBar.config (команда = self .__ thisTextArea .yview)

self .__ thisTextArea.config (yscrollcommand = сел f .__ thisScrollBar. set )

С помощью этого кода мы добавим меню в окна блокнота и добавим такие функции, как копирование, вставка, сохранение и т. д.

Добавьте функциональность:

def __ quitApplication ( self ):

self .__ root.destroy()

# exit()


def __ showAbout ( self ):

showinfo ( "Блокнот" , "Мринал Верма" )

< br>

def __ openFile ( self ):


self .__ file = askopenfilename (defaultextension = ". txt" ,

типы файлов = [( "Все файлы" , " *.* " ),

( "Текстовые документы" , "*. txt" )])

if self .__ file = = "":


# нет файла для открытия

self .__ file = Нет

else :

# попробуйте открыть файл

# установите заголовок окна

self .__ root.title (os.path. базовое имя ( self .__ file) + <код class = "string"> " - Без блока" )

self .__ thisTextArea.delete ( 1.0 , КОНЕЦ)


file = открыть ( self .__ файл, "r" )


self .__ thisTextArea.insert ( 1.0 , файл . read ())


file . закрыть ()

def __ newFile ( self ):

self .__ root.title ( " Без названия - Блокнот " )

self .__ файл = None

self .__ thisTextArea.delete ( 1.0 , END)


def __ saveFile ( self ):


if self .__ файл = = None :

# сохранить как новый файл

self .__ file = просит сохранить имя_файла (инициальный файл = ’ Untitled.txt’ ,

defaultextension = ". txt" ,

типы файлов = [( "Все файлы" , "*.*" ),

( "Текстовые документы" , "*. txt" )])


if self .__ file = = "":

self .__ файл = Нет

else :

# попытаться сохранить файл

файл = open ( self .__ файл, "w" )

f файл <класс кода ="plain ">. write ( self .__ thisTextArea.get ( 1.0 , END))

файл . close()

# изменить заголовок окна

self .__ root.title (os.path.basename ( self .__ file) + "- Блокнот" )



else :

file = open ( self .__file, "w" )

файл . write ( self .__ thisTextArea.get ( 1.0 , END))

файл . закрыть ()


def __ cut ( self ):

self .__ thisTextArea.event_generate ( """Cut""" )


def __ copy ( self ):

self .__ thisTextArea.event_generate ( """Copy""" )


def __ paste ( self ):

self .__ thisTextArea.event_generate ( ""& л; Вставить""" )

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

Основной код после объединение всего:


import tkinter

import os

from tkinter import *

from tkinter.messagebox import *

from tkinter.filedialog import *


класс Блокнот:

__ root = Tk()


# ширина и высота окна по умолчанию

< класс кода ="неопределенные пробелы"> __ thisWidth = 300

__ thisHeight = 300

__ thisTextArea = Text (__root)

__ thisMenuBar = Меню (__ root)

__ thisFileMenu = Меню (__ thisMenuBar, отрывной = 0 )

__ thisEditMenu = Меню (__ thisMenuBar, отрывной = 0 )

__ thisHelpMenu = Меню (__ thisMenuBar, отрывной = 0 )


# Добавить полосу прокрутки

__ thisScrollBar = Полоса прокрутки (__ thisTextArea)

__ файл = Нет


def __ init __ ( self , * * kwargs ):


# Установить значок

try :

self .__ root .wm_iconbitmap ( "Notepad.ico" )

кроме :

pass


# Установить размер окна (по умолчанию 300x300)


try :

self .__ thisWidth = kwargs [ ’ width’ ]

кроме KeyError:

pass

< br>

попробовать :

self .__ thisHeight = kwargs [ ’height’ ]

кроме KeyError:

pass


# Установить текст окна

self .__ root.title ( "Без названия - Блокнот" )


# Центрировать окно

screenWidth = self .__ root. winfo_screenwidth ()

screenHeight = self .__ root .winfo_screenheight ()


# Для левого

левого = (ширина экрана / 2 ) - ( self .__ thisWidth / 2 )


# Правильно

top = (screenHeight / 2 ) - < класс кода = "обычный"> ( <класс кода = "color1"> self <класс кода = "обычный">. __thisHeight / 2 )

# Для верхнего и нижнего

self .__ root.geometry ( ’% dx% d +% d +% d’ % ( self .__ thisWidth,

self .__ thisHeight,

слева, сверху))

# Автоматическое изменение размера текстовой области

/ code> передать


# Установить текст окна

self .__ root.title ( "Без названия - Блокнот" )


# Окно по центру

screenWidth = self .__ root.winfo_screenwidth ()

screenHeight = self .__ root.winfo_screenheight ()


# Для левого

left = (ширина экрана / 2 )