folder Tahribat.com Forumları
linefolder Python
linefolder Python Metin Editörü : Bir Proje Pypad



Python Metin Editörü : Bir Proje Pypad

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo

    Napayım napayım derken kendime bi uğraş bulayım geliştireyim diye arayüzlü bir metin editörü yazmaya çalıştım bu betadır hata olabilir eksiklikler olabilir şuan sadece temel işlevleri yerine getiriyor.Adını da koymayı unutmadım : PyPad (NotePad) den çaldım.


    Not:Dosya kaydette sorun var şöyle ki her dosya kaydedişinizde isim girmek zorundasınız bunun kontrolünü eklemedim.Neden mi ? Finaller var be .
    Not2:Dosya aç dediğinizde açmazsanız hata verir akıllı olun :)

    Konunun urlsi : http://www.enesergn.com/python-metin-editoru-bir-proje-pypad.py


    kodlara geçersek:

     

    __author__ = 'ka1nsha'
    # -*- coding:utf-8 -*-
    #!/usr/bin/python
    
    from Tkinter import *
    import os
    from tkFileDialog import askopenfilename
    
    def kaydet():
        global kayit
        kayit = Toplevel()
        kayit.title("Dosya ismini yazınız : ")
        global bildiri
        bildiri = Entry(kayit)
        bildiri.pack()
        konum = os.getcwd()
        bilgi = Label(kayit)
        bilgi.config(text = ("Dosya şuraya kaydedilicek : %s") %(konum))
        bilgi.pack()
        buton = Button(kayit,text="Kaydet",command=dosyakaydet)
        buton.pack()
    
    def dosyakaydet():
        dosyaismi =  bildiri.get()
        str(dosyaismi)
        dosya = open("%s.txt" %(dosyaismi) , "w")
        kaydedilicekyazi = yazialani.get("1.0", END)
    
    
        str(kaydedilicekyazi)
        dosya.write(kaydedilicekyazi)
        dosya.close()
    
        kayit.destroy()
    def yenidosya():
        yazialani.delete("1.0", END)
    
    def dosyaac():
    
        ac = askopenfilename()
        acilanyazi = open(ac,"r")
    
        for y in acilanyazi:
            yazialani.delete("1.0", END)
            yazialani.insert(INSERT,y)
    
    anapencere = Tk()
    anapencere.wm_title("PyPad Alfa Non-Stable Version")
    
    ustmenu = Menu()
    ustmenu.add_command(label="Yeni",command=yenidosya)
    ustmenu.add_command(label="Kaydet",command=kaydet)
    ustmenu.add_command(label="Dosya Aç",command=dosyaac)
    anapencere.config(menu=ustmenu)
    #TextArea
    yazialani = Text()
    
    yazialani.pack()
    mainloop()


     
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZoRKaYa
    ZoRKaYa's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    Eline sağlık boş bi vaktimde uzunca incelerim :)


    echo "imzanız özel karakter içermemelidir";
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo
    ZoRKaYa bunu yazdı

    Eline sağlık boş bi vaktimde uzunca incelerim :)

    Öyle çok incelencek birşey yok hocam yani senin açından gayet kolay bi kod bloğu :D 

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Buremba
    Buremba's avatar
    Kayıt Tarihi: 16/Haziran/2006
    Erkek

    (pycharm veya intellij idea) + dracula = <3

    Buremba tarafından 08/Oca/14 01:00 tarihinde düzenlenmiştir

    . . .. . ... .
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZINDIK
    ZINDIK's avatar
    Kayıt Tarihi: 31/Mart/2007
    Erkek

    Güzel olmuş haci ellerine sağlık.

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo
    outmost bunu yazdı

    Güzel olmuş haci ellerine sağlık.

    yakında hex kodlarını okuyanını yapıcam :D 

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZINDIK
    ZINDIK's avatar
    Kayıt Tarihi: 31/Mart/2007
    Erkek
    Ka1nsha bunu yazdı
    outmost bunu yazdı

    Güzel olmuş haci ellerine sağlık.

    yakında hex kodlarını okuyanını yapıcam :D 

    Hadi baim başarılar dilerim. =D

    geliştirmeyi pyqt'ye kaydırırsan fıstık gibi scintilla var.

    http://pyqt.sourceforge.net/Docs/QScintilla2/

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo

    PyQt çok karmaşık geliyor bana tamam belki tkinterdan daha işlevsel ve özelliklidir fakat Tkinter iyi ya  :)

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo
    Ka1nsha bunu yazdı

    PyQt çok karmaşık geliyor bana tamam belki tkinterdan daha işlevsel ve özelliklidir fakat Tkinter iyi ya  :)

    hem de ek paket kurmaya gerek kalmıyor tkinter için.

    şu programa bi status bar ekle de adam dosya seçmezse hata vermesin status'de dosya seçilmedi yazsın.

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo
    Daft bunu yazdı
    Ka1nsha bunu yazdı

    PyQt çok karmaşık geliyor bana tamam belki tkinterdan daha işlevsel ve özelliklidir fakat Tkinter iyi ya  :)

    hem de ek paket kurmaya gerek kalmıyor tkinter için.

    şu programa bi status bar ekle de adam dosya seçmezse hata vermesin status'de dosya seçilmedi yazsın.

    Aklıma bile gelmemişti la sağolasın vallaha :( 

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo

    Güncelleme:

    def kaydet():
        global kayit
        kayit = Toplevel()
        kayit.title("Dosya ismini yazınız : ")
        global bildiri
        bildiri = Entry(kayit)
        bildiri.pack()
        konum = os.getcwd()
        bilgi = Label(kayit)
        bilgi.config(text = ("Dosya şuraya kaydedilicek : %s") %(konum))
        bilgi.pack()
        buton = Button(kayit,text="Kaydet",command=dosyakaydet)
        buton.pack() #

    Olan yeri:


    global Kayitet
        Kayitet = asksaveasfile(mode="w")
        yazi = yazialani.get(0.0,END)
    
        Kayitet.write(yazi)
        Kayitet.close()




    Olarak değiştirdim.Dosya kaydet fonksiyonunu kaldırdım . O kadar kod amelelik olmuş.Şuan ki bütün betik:

     

    __author__ = 'ka1nsha'
    # -*- coding:utf-8 -*-
    #!/usr/bin/python
    
    from Tkinter import *
    import os
    from tkFileDialog import *
    
    def kaydet():
        
        global Kayitet
        Kayitet = asksaveasfile(mode="w")
        yazi = yazialani.get(0.0,END)
    
        Kayitet.write(yazi)
        Kayitet.close()
    
    
    def yenidosya():
        yazialani.delete("1.0", END)
    
    def dosyaac():
    
        ac = askopenfilename()
        acilanyazi = open(ac,"r")
    
        for y in acilanyazi:
            yazialani.insert(INSERT,y)
    
    anapencere = Tk()
    anapencere.wm_title("PyPad Alfa Non-Stable Version")
    
    ustmenu = Menu()
    ustmenu.add_command(label="Yeni",command=yenidosya)
    ustmenu.add_command(label="Kaydet",command=kaydet)
    ustmenu.add_command(label="Dosya Aç",command=dosyaac)
    anapencere.config(menu=ustmenu)
    #TextArea
    yazialani = Text()
    
    yazialani.pack()
    mainloop()
    
    0x656e tarafından 11/Oca/14 22:16 tarihinde düzenlenmiştir
Toplam Hit: 2213 Toplam Mesaj: 17