GUI

2016-04-09 28 views
0

'da soropenfilename'nin kullanımı Bu sorunla ilgili sorun yaşıyorum. Yolunu ve askopenfilename ile seçilen bir dosyanın adını ve daha sonra gelen kodlarda kullanılacak bir GUI oluşturmak istiyorum. Mayıs seçeneklerini denedim ama başarılı olmadım. Elimdeki en iyi şey takip etmekti ama ihtiyacım olanı geri getirmiyor. Yardım için teşekkürler.GUI

import tkinter as tk 
from tkinter.filedialog import askopenfilename 
class TkFileDialogExample(tk.Frame): 

    def __init__(self, root): 
    tk.Frame.__init__(self, root) 
    self.a=[] 
    tk.Button(self, text='askopenfilename', command=self.askopenfilename).pack() 

    def askopenfilename(self): 
     filename= askopenfilename() 
     self.a.append(filename) 
     return self.a 

# MAIN PROGRAM 
aa=[] 
root = tk.Tk() 
TkFileDialogExample(root).pack() 
root.mainloop() 
aa.append(TkFileDialogExample.askopenfilename) 
print(aa) 
+0

Beklenen çıktınız nedir? Sınıfı başlatıyorsunuz, onu root'a gönderiyorsunuz ve daha sonra 'aa' listesine sınıfın metoduna bir referans ekliyorsunuz. Bir dosya adı isteme yöntemini başlatmadıysanız ve kullanıcı fildialog üzerinde iptal tıklarsa, hiçbiri geri dönmez, yani 'Yok' listenizde eklenmesini istemiyorsanız '' self.a' '' eğer dosya isminin kontrol edilmesi: self.a.append (dosya adı) ' – Pythonista

+0

Merhaba Slayer. Teşekkürler, önerdiğin gibi kodu uyguladım. ama yine de ana koddaki dosyanın ismini alamıyorum. GUI'yi kapattığımda TkFileDialogExample.askopenfilename dosyasının adını döndürmesini beklerim – VictorBrandl

cevap

0

Ben örnek kullanıcı FileDialog gelen dosya adlarını açılan comment (ler) GUI çıktığınızda

import tkinter as tk 
from tkinter.filedialog import askopenfilename 

filenames = [] 

def open_file(): 

    filename = askopenfilename() 
    if filename: 
     filenames.append(filename) 

root = tk.Tk() 
tk.Button(root, text='Open File', command=open_file).pack() 
root.mainloop() 
print(filenames) 

tüm geçerli bir listesini olacak burada yararlı olacağını düşünüyorum iptal etmedi.

0

Aşağıdaki kod, üzerinde bir soru listesi iletişim kutusu açacak ve sonucu bir listeye ekleyecek bir düğme içeren bir GUI oluşturur. Bu düğme ayrıca, GUI'ye bir soru sorar ve bu dosyada, soru listesi iletişim kutusunun döndürdüğü dosya yolu belirtilir.

import tkinter as tk 
from tkinter.filedialog import askopenfilename 

###Step 1: Create The App Frame 
class AppFrame(tk.Frame): 
    def __init__(self, parent, *args, **kwargs): 
     ###call the parent constructor 
     tk.Frame.__init__(self, parent, *args, **kwargs) 

     self.parent = parent 

     ###Create button 
     btn = tk.Button(self, text='askopenfilename',command=self.askopenfilename) 
     btn.pack(pady=5) 

    def askopenfilename(self): 
     ###ask filepath 
     filepath = askopenfilename() 

     ###if you selected a file path 
     if filepath: 
      ###add it to the filepath list 
      self.parent.filepaths.append(filepath) 

      ###put it on the screen 
      lbl = tk.Label(self, text=filepath) 
      lbl.pack() 

###Step 2: Creating The App 
class App(tk.Tk): 
    def __init__(self, *args, **kwargs): 
     ###call the parent constructor 
     tk.Tk.__init__(self, *args, **kwargs) 

     ###create filepath list 
     self.filepaths = [] 

     ###show app frame 
     self.appFrame = AppFrame(self) 
     self.appFrame.pack(side="top",fill="both",expand=True) 


###Step 3: Bootstrap the app 
def main(): 
    app = App() 
    app.mainloop() 

if __name__ == '__main__': 
    main()