Python tkinter Hakkında


#1

Merhaba bir program tasarlıyordumda bir sorunum vardı. Resimde görüldüğü üzere bir tane textbox var ben bu textboxa yazdıklarımı kaydet butonuna tıklayınca:

https://image.ibb.co/nx9nEJ/Ekran_Al_nt_s.png

şöyle kaydet menüsünü nasıl oluşturabilirm. Resimdeki gibi ayrıntılı değil yolunu gösterme yeri kaydet ve iptal butonları olsun yeter.

Birde önizleme butonuna bastıktan sonra mesela Html olarak kaydettim diyelim önizlemeye bastıktan sonra onu html olarak nasıl açabilirim yardımcı olurmusunuz ayrıca varsa bunun ile ilgili bir kaynak paylaşırsanız sevinirim Türkçe - ingilizce fark etmez teşekkürler.


#2

Menü ekleyerek bunu yapabilirsiniz:
Aşağıdaki kodları, kendi kodlarınıza uyarlayabilirsiniz:

import tkinter as tk
from tkinter import filedialog


root = tk.Tk()

text = tk.Text(root)
text.pack()

menu = tk.Menu(master=None)
root.configure(menu=menu)

dosya_menusu = tk.Menu(master=menu, tearoff=False)
menu.add_cascade(label="Dosya", menu=dosya_menusu)


def ac():
    text.delete("1.0", "end")
    dosya = filedialog.askopenfilename(filetypes=[("Metin Belgeleri", ".txt")])
    with open(dosya) as d:
        metin = d.readlines()
        for i in metin:
            text.insert("insert", i)


def farkli_kaydet():
    dosya = filedialog.asksaveasfilename(filetypes=[("Metin Belgeleri", ".txt")], defaultextension=".txt")
    with open(dosya, "w") as d:
        d.write(text.get("1.0", "end"))


def cik():
    root.destroy()


dosya_menusu.add_command(label="Aç...", command=ac)
dosya_menusu.add_command(label="Farklı Kaydet...", command=farkli_kaydet)
dosya_menusu.add_separator()
dosya_menusu.add_command(label="Çıkış", command=cik)

root.mainloop()

#3

Bir tarayıcıda mı açmak istiyorsunuz yoksa uygulamanız içinde mi?


#4

Farketmez her ikiside olabilir.


#5

Tarayıcıda açmak için webbrowser modülünü kullanabilirsiniz.
Normal dosya olarak açmak için de os.start komutunu.