Site içi Arama

Ara

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

Mehmet Yılmaz - 28.01.2009

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

Adana'da dünyaya geldi. Televizyon tamirciliğınde çırak olarak erken dönemde iş hayatına başladı. Daha sonraları Adana ve Ankara'da imalat, bilgisayar ve danışmanlık sektöründe iş hayatına devam etti. Şu anda kendisine ait işyerinde çalışmalarına devam etmektedir.
Web adresi: www.teknimer.com
E-posta: mehmet@teknimer.com
İçerik Yan Blok
Konular
Tasarım: Teknimer Teknoloji
Yukarı