Teknomerkez
TR EN ES
Konular

PYTHON ve Tkinter İle Dosya İçeriğini Gösterme Uygulaması

Yazar: Mehmet Yılmaz
Tarih: 28.01.2009
Türkçe

Bu yazıda Python'da dosya açma ve içeriğini gösterme ile ilgili örnek verilecektir. Pythonun daha rahat anlaşılabilmesi ve programın izlenebilmesi amacıyla programda bulunan kodlarda kullanılan değişkenler uzun ve anlaşılabilir olarak yazılmıştır.

Başlangıç aşaması uygulaması niteliği taşıyan bir program olam özelliği göz önüne alınarak hazırlanmıştır. Programın kaynak kodu anlaşılırlığını artırmak amacı ile uzun tanımlama şeklinde hazırlanmıştır. Program içerisinde kısmi açıklama yapılmıştır.

Program daha kısa yazılabilir olmakla birlikte anlaşılırlığını artırmak amacıyla şu an kullanılan haliyle düzenlenmiştir.

Program şöyle tasarlanmıştır. İki adet sabit ifadeli ve görevli düğme tanımlanmıştır. Birincisi Çıkış düğmesidir. Bu düğme ile programdan çıkılmaktadır. İkinci sabit görevli düğme ise, "Giriş" düğmesidir. Bu düğme program ilk açıldığındametin kutusuna gelen karşılama yazısını metin kutuna taşımaktadır.

Kullanıcı grafik arayüzü için Tkinter kullanılmıştır.

Programın kaynak kodları için "Kaynak Kodu" düğmesini tıklayınız.

"ek" kalsörü içeriğinde bulunan dosyalarda yapacağınız değişiklikler sizin düzenleme alanınızı oluşturmaktadır. "Giriş" düğmesi dışındaki bütün düğme yazıları ve metinler "ek" klasör içerini oluşturan dosyalarla değiştirilebilmektedir. Bu değişikliği yapmak için kaynak kodunu düzenlemeye ihtiyaç bulunmamaktadır. Her düğme ve metin alanının kendi dosyası bulunmaktadır.

Programa ait dosyaları indirmek için tıklayınız.

Programın Python kaynak kodları

#!/usr/bin/python
# -*- coding: utf8 -*-

import sys
from Tkinter import * # kullanici grafik arayüzü icin Tkinter kullaniliyor

def ilk():
    #dosya=open(str(sys.path[0])+"/ek/giris.txt")
    dosya=open("./ek/giris.txt")
    metinler.delete(1.0, END)
    metinler.insert(INSERT,dosya.read())
    dosya.close()

def yazi1():
    #dosya=open(str(sys.path[0])+"/ek/metin1.txt")
    dosya=open(str(sys.path[0])+"/ek/metin1.txt")
    metinler.delete(1.0, END)
    metinler.insert(INSERT,dosya.read())
    dosya.close()

def yazi2():
    dosya=open(str(sys.path[0])+"/ek/metin2.txt")
    metinler.delete(1.0, END)
    metinler.insert(INSERT,dosya.read())
    dosya.close()

def yazi3():
    dosya=open(str(sys.path[0])+"/ek/metin3.txt")
    metinler.delete(1.0, END)
    metinler.insert(INSERT,dosya.read())
    dosya.close()

def yazi4():
    dosya=open(str(sys.path[0])+"/ek/metin4.txt")
    metinler.delete(1.0, END)
    metinler.insert(INSERT,dosya.read())
    dosya.close()

pencere=Tk() # ana pencere olusturuluyor
pencere.title("Bilgi oku - mehmet.yilmaz@teknomerkez.net")
pencere.geometry("600x400") # pencerenin baslangic boyutlari

menuframe=Frame() #Menu icin hazirlanan frame basi
menuframe.config(width=150, borderwidth=2, relief=GROOVE, bg="#a52")
menuframe.pack(side=LEFT, fill=Y) # Menu icin hazirlanan frame sonu

giris=Button(menuframe) # giris butonu sabit yapildi.
giris.config(text="Giriş", command=ilk, width=13, height=1, font=("normal", 10), bg="#E1F2F7")
giris.pack(side=TOP, padx=3, pady=3)

dosya1=open(str(sys.path[0])+"/ek/dugme1.txt").read() # dugme1'in gorunen yazisi icin dosya okunuyor
dugme1=Button(menuframe)    # dugme1 menuframe icine olusturluyor
dugme1.config(text=dosya1, command=yazi1, width=13, height=1, font=("normal", 10), bg="#E1F2F7")
dugme1.pack(side=TOP, padx=3, pady=3)

dosya2=open(str(sys.path[0])+"/ek/dugme2.txt").read()
dugme2=Button(menuframe)
dugme2.config(text=dosya2, command=yazi2, width=13, height=1, font=("normal", 10), bg="#E1F2F7")
dugme2.pack(side=TOP, padx=3, pady=3)

dosya3=open(str(sys.path[0])+"/ek/dugme3.txt").read()
dugme3=Button(menuframe)
dugme3.config(text=dosya3, command=yazi3, width=13, height=1, font=("normal", 10), bg="#E1F2F7")
dugme3.pack(side=TOP, padx=3, pady=3)

dosya4=open(str(sys.path[0])+"/ek/dugme4.txt").read()
dugme4=Button(menuframe)
dugme4.config(text=dosya4, command=yazi4, width=13, height=1, font=("normal", 10), bg="#E1F2F7")
dugme4.pack(side=TOP, padx=3, pady=3)

cik=Button(menuframe) # programdan cikis icin 
cik.config(text="Çıkış", command=sys.exit, width=13, height=1, font=("bold", 10), bg="#FFCCFF")
cik.pack(side=BOTTOM, padx=3, pady=3)

metinframe=Frame(borderwidth=8) # Metinler icin hazirlanan frame basi
metinframe.config(bg="#004C4C")
metinframe.pack(expand=YES, fill=BOTH) # Metinler icin hazirlanan frame sonu

dosya=open(str(sys.path[0])+"/ek/giris.txt") # program bu dosya ile acilacak
metinler=Text(metinframe) # butun metinler bu kutuda gosterilecek
metinler.delete(1.0, END)
metinler.insert(INSERT, dosya.read())
metinler.config(bg="white", width=5)
metinler.pack(expand=YES, fill=BOTH, side=LEFT)

scrollbaricin=Scrollbar(metinframe) # metin kutusuna kaydirma cubugu ekleniyor
scrollbaricin.config(command=metinler.yview, bg="#009393", troughcolor="#6699FF", width=15)
metinler.config(yscrollcommand=scrollbaricin.set)
scrollbaricin.pack(side=RIGHT, fill=Y)

pencere.mainloop() # sonsuz dongu calistiriliyor

Yorumlarınız

Mehmet - 18.02.2009
Hocam konu hakkında daha net bi açıklama yapabilirmisin. Resimde görüneni nasıl ve hangi programla yapabiliyoruz

Bir yorum ekleyin

İsim:
E-posta:
Yorumunuz:
Güvenlik Kodu:
 
Tüm alanları doldurmak zorunludur. Yorumunuz kontrol edilince yayınlanacaktır. E-posta adresi yayınlanmaz.
İzin verilen html etiketler (tag): <p><div><b><strong><i><u><del><hr><sup><sub><br>