def add_funcs(self): cfg.create_label(self.frame_funcs, 'ФУНКЦИЯ: ', FONT_BOLD, 0, 0, PADX, PADY, tk.N, 'groove') for i, func in enumerate(FUNCS): cfg.create_radiobutton(self.frame_funcs, self.func, i, func, FONT, i + 1, 0, PADX, 0, 'WN') self.frame_funcs.grid(row=1, column=1, padx=5, pady=5, sticky=tk.N)
def add_color(self): cfg.create_label(self.frame_color, 'ЦВЕТ: ', FONT_BOLD, 0, 0, PADX, PADY, tk.N, 'groove') self.color_win = cfg.create_button(self.frame_color, '', FONT, 1, 0, PADX, 0, 1, 'WE', self.choose_color, self.color) self.frame_color.grid(row=0, column=1, padx=5, pady=5, sticky=tk.N)
def add_section(self): cfg.create_label(self.frame_section, 'ВВОД ОТРЕЗКОВ', FONT_BOLD, 0, 0, PADX, PADY, tk.N, 'groove') cfg.create_label(self.frame_section, 'Координаты отрезка', FONT_BOLD, 1, 0, PADX, 1, tk.N) self.section_coors = cfg.create_entry(self.frame_section, FONT, 2, 0, PADX, PADY, tk.N) cfg.create_button(self.frame_section, 'ВВЕСТИ', FONT, 3, 0, PADX, PADY, 1, 'WE', self.create_section) self.frame_section.grid(row=1, column=1, padx=5, pady=5, sticky=tk.N)
def add_color(self): cfg.create_label(self.frame_color, 'Выберите цвет', FONT_BOLD, 0, 0, PADX, PADY, tk.N, 'groove') for i, color in enumerate(cfg.colors): cfg.create_radiobutton(self.frame_color, self.color, i, color, FONT, i + 1, 0, PADX, 0, 'WN') cfg.create_button(self.frame_color, 'Поменять цвет', FONT, 7, 0, PADX, 0, 1, 'WE', self.change_color) cfg.create_label(self.frame_color, '(Холст будет очищен)', 'Times 10', 8, 0, PADX, 0, tk.N) self.frame_color.grid(row=1, column=1, padx=5, pady=5, sticky=tk.N)
def add_section(self): cfg.create_label(self.frame_section, 'ВВОД ОТРЕЗКОВ', FONT_BOLD, 0, 0, PADX, PADY, tk.N, 'groove') cfg.create_label( self.frame_section, 'Координаты отрезка\n(или ЛКМ,\nверт./гориз. - +Ctrl,\n' 'параллельные - +Shift)', FONT_BOLD, 1, 0, PADX, 1, tk.N) self.section_coors = cfg.create_entry(self.frame_section, FONT, 2, 0, PADX, PADY, tk.N) cfg.create_button(self.frame_section, 'ВВЕСТИ', FONT, 3, 0, PADX, PADY, 1, 'WE', self.create_section) self.frame_section.grid(row=1, column=1, padx=5, pady=5, sticky=tk.N)
def add_cutter(self): cfg.create_label(self.frame_cutter, 'ВВОД ОТСЕКАТЕЛЯ', FONT_BOLD, 0, 0, PADX, PADY, tk.N, 'groove') cfg.create_label( self.frame_cutter, 'Координаты границ\nв формате "левая\nнижняя правая верхняя"', FONT_BOLD, 1, 0, PADX, 1, tk.N) self.cutter_coors = cfg.create_entry(self.frame_cutter, FONT, 2, 0, PADX, PADY, tk.N) cfg.create_button(self.frame_cutter, 'ВВЕСТИ', FONT, 3, 0, PADX, PADY, 1, 'WE', self.create_cutter) self.frame_cutter.grid(row=0, column=1, padx=5, pady=5, sticky=tk.N)
def add_input(self): text = 'Введите координаты\nдля следующей\nточки через пробел\n(либо сделайте\nэто мышью)\n' \ '(Зажатый Ctrl - \nпрямые отрезки)' cfg.create_label(self.frame_input, text, FONT_BOLD, 0, 0, PADX, PADY, tk.N, 'groove') entry_coors = cfg.create_entry(self.frame_input, FONT, 1, 0, PADX, PADY, tk.N) cfg.create_button(self.frame_input, 'Добавить', FONT, 2, 0, PADX, PADY, 1, 'WE', self.draw_point) self.coors = entry_coors self.frame_input.grid(row=0, column=1, padx=5, pady=5, sticky=tk.N)
def add_cutter(self): cfg.create_label(self.frame_cutter, 'ВВОД ОТСЕКАТЕЛЯ', FONT_BOLD, 0, 0, PADX, PADY, tk.N, 'groove') cfg.create_label( self.frame_cutter, 'Очередная вершина\n(или ПКМ, \nверт./гориз. - +Ctrl)', FONT_BOLD, 1, 0, PADX, 1, tk.N) self.cutter_coors = cfg.create_entry(self.frame_cutter, FONT, 2, 0, PADX, PADY, tk.N) cfg.create_button(self.frame_cutter, 'ДОБАВИТЬ', FONT, 3, 0, PADX, PADY, 1, 'WE', self.create_cutter) cfg.create_button(self.frame_cutter, 'ЗАМКНУТЬ', FONT, 4, 0, PADX, PADY, 1, 'WE', self.canvas.end_cutter) self.frame_cutter.grid(row=0, column=1, padx=5, pady=5, sticky=tk.N)
def add_color(self): cfg.create_label(self.frame_color, 'ЦВЕТ ОТСЕКАТЕЛЯ: ', FONT_BOLD, 0, 0, PADX, 4, tk.N, 'groove') self.color_wins['cutter'] = cfg.create_button( self.frame_color, '', FONT, 1, 0, PADX, 0, 4, 'WE', lambda: self.choose_color('cutter'), self.colors['cutter']) cfg.create_label(self.frame_color, 'ЦВЕТ ОТРЕЗКОВ: ', FONT_BOLD, 2, 0, PADX, 4, tk.N, 'groove') self.color_wins['section'] = cfg.create_button( self.frame_color, '', FONT, 3, 0, PADX, 0, 4, 'WE', lambda: self.choose_color('section'), self.colors['section']) cfg.create_label(self.frame_color, 'ЦВЕТ РЕЗУЛЬТАТА: ', FONT_BOLD, 4, 0, PADX, 4, tk.N, 'groove') self.color_wins['result'] = cfg.create_button( self.frame_color, '', FONT, 5, 0, PADX, 0, 4, 'WE', lambda: self.choose_color('result'), self.colors['result']) self.frame_color.grid(row=2, column=1, padx=5, pady=5, sticky=tk.N)
def add_limits(self): cfg.create_label(self.frame_limits, 'ПРЕДЕЛЫ', FONT_BOLD, 0, 0, PADX, PADY, tk.N, 'groove', 4) cfg.create_label(self.frame_limits, 'ОТ', FONT, 1, 1, 0, 0, tk.N, 'groove') cfg.create_label(self.frame_limits, 'ДО', FONT, 1, 2, 0, 0, tk.N, 'groove') cfg.create_label(self.frame_limits, 'ШАГ', FONT, 1, 3, 0, 0, tk.N, 'groove') cfg.create_label(self.frame_limits, 'ПО Х:', FONT, 2, 0, 0, 0, tk.N, 'groove') self.dx.append( cfg.create_entry(self.frame_limits, FONT, 2, 1, PADX, PADY, tk.N, 4)) self.dx[0].insert(0, '-10') self.dx.append( cfg.create_entry(self.frame_limits, FONT, 2, 2, PADX, PADY, tk.N, 4)) self.dx[1].insert(0, '10') self.dx.append( cfg.create_entry(self.frame_limits, FONT, 2, 3, PADX, PADY, tk.N, 4)) self.dx[2].insert(0, '0.1') cfg.create_label(self.frame_limits, 'ПО Y:', FONT, 3, 0, 0, 0, tk.N, 'groove') self.dz.append( cfg.create_entry(self.frame_limits, FONT, 3, 1, PADX, PADY, tk.N, 4)) self.dz[0].insert(0, '-10') self.dz.append( cfg.create_entry(self.frame_limits, FONT, 3, 2, PADX, PADY, tk.N, 4)) self.dz[1].insert(0, '10') self.dz.append( cfg.create_entry(self.frame_limits, FONT, 3, 3, PADX, PADY, tk.N, 4)) self.dz[2].insert(0, '0.1') cfg.create_button(self.frame_limits, 'ПРИМЕНИТЬ', 'Times 10', 4, 0, PADX, PADY, 4, 'WE', self.change_limits) self.frame_limits.grid(row=2, column=1, padx=5, pady=5, sticky=tk.N)
def add_entry(self): cfg.create_label(self.frame_entries, 'ПОВОРОТ ВОКРУГ ОСЕЙ', FONT_BOLD, 0, 0, PADX, PADY, tk.N, 'groove', 3) cfg.create_label(self.frame_entries, 'ПО Х:', FONT, 1, 0, PADX, PADY, tk.N) self.ox = cfg.create_entry(self.frame_entries, FONT, 1, 1, PADX, PADY, tk.N, 5) self.ox.insert(0, '0') cfg.create_button(self.frame_entries, 'ПРИМЕНИТЬ', 'Times 10', 1, 2, PADX, PADY, 1, 'WE', self.canvas.rotate_x) cfg.create_label(self.frame_entries, 'ПО Y:', FONT, 2, 0, PADX, PADY, tk.N) self.oy = cfg.create_entry(self.frame_entries, FONT, 2, 1, PADX, PADY, tk.N, 5) self.oy.insert(0, '0') cfg.create_button(self.frame_entries, 'ПРИМЕНИТЬ', 'Times 10', 2, 2, PADX, PADY, 1, 'WE', self.canvas.rotate_y) cfg.create_label(self.frame_entries, 'ПО Z:', FONT, 3, 0, PADX, PADY, tk.N) self.oz = cfg.create_entry(self.frame_entries, FONT, 3, 1, PADX, PADY, tk.N, 5) self.oz.insert(0, '0') cfg.create_button(self.frame_entries, 'ПРИМЕНИТЬ', 'Times 10', 3, 2, PADX, PADY, 1, 'WE', self.canvas.rotate_z) ttk.Separator(self.frame_entries, orient='horizontal').grid(row=4, column=0, columnspan=3, pady=8, sticky='WE') cfg.create_label(self.frame_entries, 'МАСШТАБИРОВАНИЕ', FONT_BOLD, 5, 0, PADX, PADY, tk.N, 'groove', 3) cfg.create_label(self.frame_entries, 'K:', FONT, 6, 0, PADX, PADY, tk.N) self.scale = cfg.create_entry(self.frame_entries, FONT, 6, 1, PADX, PADY, tk.N, 5) self.scale.insert(0, '50') cfg.create_button(self.frame_entries, 'ПРИМЕНИТЬ', 'Times 10', 6, 2, PADX, PADY, 1, 'WE', self.draw_func) self.frame_entries.grid(row=3, column=1, padx=5, pady=5, sticky=tk.N)