2013-05-07 43 views
5

Şimdiye kadar bir dosya açabilen bir Tkinter programı yapmaya çalışıyorum Dosyayı bir açılır menüden belirten bir seçenek olan bir tk penceresi açar ve tıklattığınızda açıldığını söyler bir dosya penceresi ama aslında çalışıyor kod im bu dosyayı İşteDosya Açma (Tkinter)

açmayı anlamaya olamaz: Eğer f = open(filename) yaptığında

from Tkinter import * 
from tkFileDialog import askopenfilename 
def openfile(): 

    filename = askopenfilename(parent=root) 
    f = open(filename) 
    f.read() 

root = Tk() 
menubar = Menu(root) 
filemenu = Menu(menubar, tearoff=0) 
filemenu.add_command(label="Open", command=openfile) 
filemenu.add_separator() 
filemenu.add_command(label="Exit", command=root.quit) 
menubar.add_cascade(label="File", menu=filemenu) 

root.config(menu=menubar) 
root.mainloop() 

Here is what the window looks like

+1

Bu kod çalışır, sadece gereken 'dönüş f.read()' – Jared

+0

ahahhaha tamam oh üzgünüm ama ben x = f.read diyorum ki nasıl yapabilirim böylece x dışında başka bir yere giriş yapabiliyorum özür dilerim im bir acemi im – Serial

cevap

10

zaten dosyayı açtı. Dosyanın içeriğini konsola yazdırmak için print f.read() yazabilirsiniz. Ya

for line in f: 
    print line 

gibi içeriğini yazdırmak hattı & dosya hattı geçmesi Burada bir dosya açın ve UI içeriğini var yazdırmak için nasıl bir örnektir. Ben yardımcı olmak için bu örneği buldum ve ne istediğinizi tam olarak gösterir:

from Tkinter import Frame, Tk, BOTH, Text, Menu, END 
import tkFileDialog 

class Example(Frame): 

    def __init__(self, parent): 
     Frame.__init__(self, parent) 

     self.parent = parent   
     self.initUI() 

    def initUI(self): 

     self.parent.title("File dialog") 
     self.pack(fill=BOTH, expand=1) 

     menubar = Menu(self.parent) 
     self.parent.config(menu=menubar) 

     fileMenu = Menu(menubar) 
     fileMenu.add_command(label="Open", command=self.onOpen) 
     menubar.add_cascade(label="File", menu=fileMenu)   

     self.txt = Text(self) 
     self.txt.pack(fill=BOTH, expand=1) 


    def onOpen(self): 

     ftypes = [('Python files', '*.py'), ('All files', '*')] 
     dlg = tkFileDialog.Open(self, filetypes = ftypes) 
     fl = dlg.show() 

     if fl != '': 
      text = self.readFile(fl) 
      self.txt.insert(END, text) 

    def readFile(self, filename): 

     f = open(filename, "r") 
     text = f.read() 
     return text 


def main(): 

    root = Tk() 
    ex = Example(root) 
    root.geometry("300x250+300+300") 
    root.mainloop() 


if __name__ == '__main__': 
    main() 

Kaynak: http://zetcode.com/gui/tkinter/dialogs/