Changeset 70:d415e749c701
- Timestamp:
- 12/12/10 01:21:24 (5 years ago)
- Branch:
- default
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Interface.py
r69 r70 ˆà 1 1 import mathˆà 2 2 import randomˆà ˆà 3 import pickleˆà 3 4 import tkColorChooserˆà ˆà 5 import tkFileDialogˆà 4 6 from Tkinter import *ˆà 5 7 ˆà òÀæ òÀæ ˆà 24 26 self.is_started = Falseˆà 25 27 self.char = Noneˆà 26 ˆà self.keys = dict()ˆà ˆà 28 self.keys = {}ˆà ˆà 29 for index, state in enumerate(automata.states):ˆà ˆà 30 self.keys[state.key] = indexˆà 27 31 self.draw()ˆà 28 32 def start(self):ˆà òÀæ òÀæ ˆà 42 46 ˆà 43 47 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)ˆà 45 51 ˆà 46 52 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()ˆà 48 65 ˆà 49 66 def show_help_window(self):ˆà òÀæ òÀæ ˆà 72 89 self.delay = 0ˆà 73 90 ˆà 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()ˆà 76 96 if position == 0 or position == 3 or position == 6:ˆà 77 97 automata.change_size(dx, 3)ˆà òÀæ òÀæ ˆà 89 109 automata.change_size(dy, 2)ˆà 90 110 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)ˆà 92 115 def draw_cell(self, cells):ˆà 93 116 for row, col in cells:ˆà òÀæ òÀæ ˆà 99 122 canvas.delete("all")ˆà 100 123 self.cells = []ˆà 101 ˆà 102 124 shift = self.cell_size + self.line_widthˆà 103 ˆà 104 125 left = -self.offset_x + self.line_widthˆà 105 126 top = -self.offset_y + self.line_widthˆà òÀæ òÀæ ˆà 372 393 ˆà 373 394 def show_automata_window(self):ˆà ˆà 395 self.select_item(self.selected_state)ˆà ˆà 396 self.refresh_listˆà 374 397 automata_window.deiconify()ˆà 375 398 ˆà òÀæ òÀæ ˆà 417 440 def clear_error(self):ˆà 418 441 error.config(text="")ˆà ˆà 442 ˆà ˆà 443 def clear_message(self):ˆà ˆà 444 message.config(text="")ˆà 419 445 ˆà 420 446 def clean_field(self):ˆà òÀæ òÀæ ˆà 575 601 ˆà 576 602 ˆà 577 ˆà side = 0ˆàˆà 603 side = IntVar()ˆà 578 604 ˆà 579 605 size_window = Toplevel(root)ˆà òÀæ òÀæ ˆà 617 643 Label(size_window).pack(side="top", fill="x")ˆà 618 644 apply_frame = Frame(size_window, padx=10, pady=5)ˆà 619 ˆà apply_size = Button(apply_frame, text="Apply", width=6 )ˆàˆà 645 apply_size = Button(apply_frame, text="Apply", width=6, command=handlers.change_size)ˆà 620 646 apply_size.pack(side="left", fill="x")ˆà 621 647 close_size = Button(apply_frame, text="Close", command=handlers.hide_size_window, width=6)ˆà 622 648 close_size.pack(side="right", fill="x")ˆà 623 649 apply_frame.pack(side="top", fill="x")ˆà 624 ˆà ˆà ˆà 650 message = Label(size_window, text="")ˆà ˆà 651 message.pack(side="top", fill="x")ˆà 625 652 menubar = Menu(root)ˆà 626 653 root.config(menu=menubar)ˆà
Note: See TracChangeset
for help on using the changeset viewer.