コード例 #1
0
ファイル: MenuBar.py プロジェクト: etiennelndr/oscillateur
class MenuBar(Frame):
    def __init__(self, parent, model_x, model_y, bg="white"):
        Tkinter.Frame.__init__(self)
        self.model_x = model_x
        self.model_y = model_y
        self.parent = parent
        #Barre Menu
        self.MenuBarre = Tkinter.Menu(self.master)

        #button_file
        self.button_file = Menu(self.MenuBarre, tearoff=0)
        self.MenuBarre.add_cascade(label="File",
                                   underline=0,
                                   menu=self.button_file)
        self.button_file.add_command(label="Open",
                                     underline=0,
                                     command=self.open)
        self.button_file.add_command(label="Save",
                                     underline=0,
                                     command=self.save)
        self.button_file.add_command(label="Exit",
                                     underline=0,
                                     command=self.exit)

        #button_Aide
        self.button_Aide = Menu(self.MenuBarre, tearoff=0)
        self.MenuBarre.add_cascade(label="Aide",
                                   underline=0,
                                   menu=self.button_Aide)
        self.button_Aide.add_command(label="Aide",
                                     underline=0,
                                     command=self.aide)

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

    def packing(self):
        self.button_file.pack(side="top")

    def save(self):
        f = tkFileDialog.asksaveasfile(mode='w',
                                       defaultextension=".txt",
                                       initialfile="SAVE FILE")
        text2save = "Amplitude_x : " + str(
            self.model_x.get_magnitude()) + " Frequence_x : " + str(
                self.model_x.get_frequency()) + " Phase_x : " + str(
                    self.model_x.get_phase())
        # starts from `1.0`, not `0.0`
        f.write(text2save)
        text2save = " Amplitude_y : " + str(
            self.model_y.get_magnitude()) + " Frequence_y : " + str(
                self.model_y.get_frequency()) + " Phase_y : " + str(
                    self.model_y.get_phase())
        f.write(text2save)
        f.close()

    def exit(self):
        res = tkMessageBox.askquestion("Quitter",
                                       "Voulez-vous quitter ?",
                                       icon='warning')
        if res == "yes":
            exit()
        else:
            return False

    def open(self):
        f = tkFileDialog.askopenfilename(initialdir="./",
                                         title="Select file",
                                         filetypes=(("text files", "*.txt"),
                                                    ("all files", "*.*")))
        reading = open(f, "r").read()
        infos = reading.split(" ")
        amp_x, freq_x, phase_x = float(infos[2]), float(infos[5]), float(
            infos[8])
        self.model_x.set_magnitude(amp_x)
        self.model_x.set_frequency(freq_x)
        self.model_x.set_phase(phase_x)
        amp_y, freq_y, phase_y = float(infos[11]), float(infos[14]), float(
            infos[17])
        self.model_y.set_magnitude(amp_y)
        self.model_y.set_frequency(freq_y)
        self.model_y.set_phase(phase_y)

    def aide(self):
        showinfo(
            'Aide',
            'Concepteur de l\'application\n\tLANDURE Etienne \nEmail :\n\[email protected]'
        )