2017-08-11 27 views
0

因此,我已經在python 3中啓動了一個小型文本編輯器項目,並且我設法添加了一個保存按鈕,其中包含一個保存文檔的功能,但是我想添加選項用於保存命令的.txt,.png和其他文件之間進行選擇。我怎麼能這樣做?爲savecommand添加.txt,.png和其他選項

from tkinter import * # Imports everything from tkinter 
import tkinter 
from tkinter import filedialog 


class Window(Frame): # Frame is a class in tkineter and we are creating a 
frame or a window 
    def __init__(self, master=None):  
     Frame.__init__(self, master) 

     self.master = master #Mainframe or main window 

     self.init_window() 

    def init_window(self): # 

     self.master.title("GUI") #windows title is GUI 

     self.pack(fill=BOTH, expand=1) # Adjust window as we want, but also 
fill up the window as a defult 


     menu =Menu(self.master) 
     self.master.config(menu=menu) 

     file = Menu(menu) 
     file.add_command(label='Open File') 
     file.add_command(label='New File') 
     file.add_command(label='Save as') 
     file.add_command(label='Save', command=self.file_save) 
     file.add_command(label='Exit', command=self.client_exit) 
     menu.add_cascade(label='File', menu=file) 

     edit = Menu(menu) 
     edit.add_command(label='Undo') 
     edit.add_command(label='Redo') 
     menu.add_cascade(label='Edit', menu=edit) 


    def file_save(self): 
     f = filedialog.asksaveasfile(mode='w', defaultextension=".txt") 
     if f is None: 
      return 
     text2save = str(text.get(1.0, END)) 
     f.write(text2save) 
     f.close() 

    def client_exit(self): 
     exit() 


root = Tk()  # 
root.geometry("400x300") #Specify the dimention of the window as 400 by 
300 
app = Window(root) 
root.mainloop()  # Generates our window for us 

回答

3

如果你看看the documentation for asksaveasfile你可以看到有一個filetypes參數。只需填寫您想要的文件類型列表即可。

filetypes_choices = [('Text file', '*.txt'), ('PNG Image File', '*.png')] 
f = filedialog.asksaveasfile(mode='w', defaultextension=".txt", filetypes=filetypes_choices) 
+0

這就是我一直在尋找的!謝謝!但是我也想知道,當我點擊保存命令提示符時,在'text2save = str(text.get(1.0,END))'中返回'name'文本'未定義',但該文件仍然保存爲文本文檔! – Hernes97

+0

@ Hernes97恐怕我不能幫你解決這個問題。看起來很奇怪,你得到一個錯誤,但代碼似乎產生了一個結果。你確定該文件不存在嗎? –

+0

除非我保存文件,否則該文件不存在 – Hernes97

相關問題