Приветствую вас дорогие друзья! Сегодня мы с вами познакомимся с двумя основными диалоговыми окнами которые есть практически в любой программе. И научимся их создавать средствами библиотеки tkinter. Поехали!
Для диалоговых окон в библиотеке tkinter есть отдельный модуль который мы должны будем подключить.
from tkinter.filedialog import *
За создание диалогового окна 'Открыть файл' отвечает класс askopenfilename.
from tkinter import *
from tkinter.filedialog import *
window = Tk()
window.title('Открыть и сохранить файл')
open_file = askopenfilename()
window.mainloop()
Как видите с запуском нашего основного окна программы появилось диалоговое окно в котором нам предлагается выбрать файл на нашем рабочем компьютере. За создание такого окна отвечает следующая строчка
open_file = askopenfilename()
Для того чтобы появилось диалоговое окно 'Сохранить файл' мы должны воспользоваться классом asksaveasfilename.
from tkinter import *
from tkinter.filedialog import *
window = Tk()
window.title('Открыть и сохранить файл')
save_file = asksaveasfilename()
window.mainloop()
В результате выполнения данного кода у нас появится диалоговое окно 'Сохранить как'.
В программах данные окна вызываются когда мы кликаем по кнопкам открыть и сохранить как. Давайте реализуем подобное поведение.
from tkinter import *
from tkinter.filedialog import *
window = Tk()
window.title('Открыть и сохранить файл')
menu = Menu()
window.config(menu=menu)
def open_file():
open_file = askopenfilename()
def save_file():
save_file = asksaveasfilename()
menu.add_command(label='Открыть', command=open_file)
menu.add_command(label='Сохранить как', command=save_file)
window.mainloop()
Здесь мы написали небольшую програмку в главном окне которого располагается верхнее меню с двумя кнопками 'Открыть' и 'Сохранить как'.
Напишем небольшую программу используя полученные знания:
from tkinter import *
from tkinter.filedialog import *
import fileinput
window = Tk()
window.title('Открыть и сохранить файл')
menu = Menu()
text = Text(window,width=40,height=10,
font="Verdana 12")
window.config(menu=menu)
def open_file():
text.delete('1.0',END)
open_file = askopenfilename()
for i in fileinput.input(open_file):
text.insert(END,i)
def save_file():
save_file = asksaveasfilename()
save_file = asksaveasfilename()
context = text.get(1.0,END)
file = open(save_file,"w")
file.write(context)
file.close()
menu.add_command(label='Открыть', command=open_file)
menu.add_command(label='Сохранить как', command=save_file)
text.pack()
window.mainloop()
С помощью данной программы мы можем открывать, читать и переписывать содержимое txt файлов. Заметьте что для считывания содержимого файлов мы подключили модуль fileinput.
На этом данная статья подошла к концу. Надеюсь я смог донести до вас новую информацию. Если что то было не понятно оставляйте свои вопросы в комментариях или пишите в службу поддержки. С радостью на них отвечу!
До скорой встречи!