python tkinter显示文件和保存

时间:2014-08-07 12:32:51

标签: python tkinter tk

我创建了一个编码gui,它没有显示' File'并且'保存'在桂 请帮我解决我的问题。 我创建了一个文件和保存功能,但仍无效!

请帮我纠正我的代码!

from tkinter import *
import tkinter.messagebox
import tkinter
import tkinter as tki
import tkinter.filedialog as th1
import re

class App(object):

    def __init__(self,root):
        self.root = root

    # create a Frame for the Text and Scrollbar
        txt_frm = tki.Frame(self.root, width=600, height=400)
        txt_frm.pack(fill="both", expand=True)
        # ensure a consistent GUI size
        txt_frm.grid_propagate(False)

    # create first Text label, widget and scrollbar
        self.lbl1 = tki.Label(txt_frm, text="Type")
        self.lbl1.grid(row=0,column=0,padx=2,pady=2)

        self.txt1 = tki.Text(txt_frm, borderwidth=3, relief="sunken", height=4,width=55)
        self.txt1.config(font=("consolas", 12), undo=True, wrap='word')
        self.txt1.grid(row=0, column=1, sticky="nsew", padx=2, pady=2)

        scrollb1 = tki.Scrollbar(txt_frm, command=self.txt1.yview)
        scrollb1.grid(row=0, column=2, sticky='nsew')
        self.txt1['yscrollcommand'] = scrollb1.set
        button = tki.Button(txt_frm,text="Clickone", command = self.retrieve_input)

        button.grid(column=2,row=0)
        button1 = tki.Button(txt_frm,text="Cli", command = self.clearBox)
        button1.grid(column=2,row=0)
    def retrieve_input(self):
        input1 = self.txt1.get("0.0",'end-1c')
        with open('text.txt','a+') as f:
            f.write(input1+'\n')
        f.close()
    def clearBox(self):
        self.txt1.delete('1.0', 'end')#<-0.0/1.0

def file_save():
        f = th1.asksaveasfile(mode='w', defaultextension=".txt")
        if f is None: # asksaveasfile return `None` if dialog closed with "cancel".
            return
        text2save = str(text.get(1.0, END)) 
        a= (f)
        f.write(text2save)
        f.close()


root = tki.Tk()
menubar=Menu(root)
filemenu=Menu(menubar,tearoff=0)
filemenu.add_command(label="Save", command=file_save)        

app = App(root)
root.mainloop()

请帮忙!答案将不胜感激!

1 个答案:

答案 0 :(得分:2)

您没有将菜单栏添加到窗口中。在创建菜单栏后添加此项。

root.configure(menu=menubar)

然后您还必须将文件菜单添加到菜单栏:

menubar.add_cascade(label="File", menu=filemenu)