Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ îðèãèíàëüíîãî äîêóìåíòà : http://kodomo.cmm.msu.ru/trac/cca/changeset/70
Äàòà èçìåíåíèÿ: Unknown
Äàòà èíäåêñèðîâàíèÿ: Sun Apr 10 17:29:53 2016
Êîäèðîâêà: IBM-866
Changeset 70:d415e749c701 òÀÓ Cyclyc Cell Automata

Changeset 70:d415e749c701


Ignore:
Timestamp:
12/12/10 01:21:24 (5 years ago)
Author:
is_rusinov
Branch:
default
Message:

+ save/open file and change_size (change_size is not working)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Interface.py

    r69 r70 ˆà
    11import mathˆà
    22import randomˆà
    ˆà3import pickleˆà
    34import tkColorChooserˆà
    ˆà5import tkFileDialogˆà
    46from Tkinter import *ˆà
    57ˆà
    òÀæ òÀæ ˆà
    2426                self.is_started = Falseˆà
    2527                self.char = Noneˆà
    26ˆà                self.keys = dict()ˆà
    ˆà28                self.keys = {}ˆà
    ˆà29                for index, state in enumerate(automata.states):ˆà
    ˆà30                        self.keys[state.key] = indexˆà
    2731                self.draw()ˆà
    2832        def start(self):ˆà
    òÀæ òÀæ ˆà
    4246        ˆà
    4347        def save_file(self):ˆà
    44ˆà                passˆà
    ˆà48                file = tkFileDialog.asksaveasfile(title="Save automata as", filetypes=[('Cyclic cell Automata File', '*.caf')])ˆà
    ˆà49                print fileˆà
    ˆà50                pickle.dump([automata.field, automata.states], file)ˆà
    4551        ˆà
    4652        def open_file(self):ˆà
    47ˆà                passˆà
    ˆà53                file = tkFileDialog.askopenfile(title="Open file", filetypes=[('Cyclic cell Automata File', '*.caf')])ˆà
    ˆà54                if file != None:ˆà
    ˆà55                        from_file = pickle.load(file)ˆà
    ˆà56                        automata.field = from_file[0]ˆà
    ˆà57                        automata.height = len(automata.field)ˆà
    ˆà58                        automata.width = len(automata.field[0])ˆà
    ˆà59                        automata.states = from_file[1]ˆà
    ˆà60                        self.selected_state = Noneˆà
    ˆà61                        self.refresh_dicts()ˆà
    ˆà62                        self.refresh_list()ˆà
    ˆà63                        self.hide_automata_window()ˆà
    ˆà64                        self.draw()ˆà
    4865        ˆà
    4966        def show_help_window(self):ˆà
    òÀæ òÀæ ˆà
    7289                        self.delay = 0ˆà
    7390        ˆà
    74ˆà        def change_size(self, dx, dy, position=0):ˆà
    75ˆà                if position < 9:ˆà
    ˆà91        def change_size(self):ˆà
    ˆà92                try:ˆà
    ˆà93                        dx = int(size_x.get()) - automata.widthˆà
    ˆà94                        dy = int(size_y.get()) - automata.heightˆà
    ˆà95                        position = side.get()ˆà
    7696                        if position == 0 or position == 3 or position == 6:ˆà
    7797                                automata.change_size(dx, 3)ˆà
    òÀæ òÀæ ˆà
    89109                                automata.change_size(dy, 2)ˆà
    90110                        self.draw()ˆà
    91ˆà        ˆà
    ˆà111                        self.hide_size_window()ˆà
    ˆà112                except Exception:ˆà
    ˆà113                        message.config(text="Operation is refused")ˆà
    ˆà114                        message.after(2000, self.clear_message)ˆà
    92115        def draw_cell(self, cells):ˆà
    93116                for row, col in cells:ˆà
    òÀæ òÀæ ˆà
    99122                canvas.delete("all")ˆà
    100123                self.cells = []ˆà
    101ˆà                ˆà
    102124                shift = self.cell_size + self.line_widthˆà
    103ˆà                                ˆà
    104125                left = -self.offset_x + self.line_widthˆà
    105126                top = -self.offset_y + self.line_widthˆà
    òÀæ òÀæ ˆà
    372393        ˆà
    373394        def show_automata_window(self):ˆà
    ˆà395                self.select_item(self.selected_state)ˆà
    ˆà396                self.refresh_listˆà
    374397                automata_window.deiconify()ˆà
    375398        ˆà
    òÀæ òÀæ ˆà
    417440        def clear_error(self):ˆà
    418441                error.config(text="")ˆà
    ˆà442        ˆà
    ˆà443        def clear_message(self):ˆà
    ˆà444                message.config(text="")ˆà
    419445        ˆà
    420446        def clean_field(self):ˆà
    òÀæ òÀæ ˆà
    575601ˆà
    576602ˆà
    577ˆàside = 0ˆà
    ˆà603side = IntVar()ˆà
    578604ˆà
    579605size_window = Toplevel(root)ˆà
    òÀæ òÀæ ˆà
    617643Label(size_window).pack(side="top", fill="x")ˆà
    618644apply_frame = Frame(size_window, padx=10, pady=5)ˆà
    619ˆàapply_size = Button(apply_frame, text="Apply", width=6)ˆà
    ˆà645apply_size = Button(apply_frame, text="Apply", width=6, command=handlers.change_size)ˆà
    620646apply_size.pack(side="left", fill="x")ˆà
    621647close_size = Button(apply_frame, text="Close", command=handlers.hide_size_window, width=6)ˆà
    622648close_size.pack(side="right", fill="x")ˆà
    623649apply_frame.pack(side="top", fill="x")ˆà
    624ˆàˆà
    ˆà650message = Label(size_window, text="")ˆà
    ˆà651message.pack(side="top", fill="x")ˆà
    625652menubar = Menu(root)ˆà
    626653root.config(menu=menubar)ˆà
Note: See TracChangeset for help on using the changeset viewer.