이번에 수정한 부분은 위와 같다.
chart 클래스가 버튼을 생성하고, 그 버튼의 값을 entry에 보여줘야 하므로
chart클래스가 entry타입을 받게끔 하였다.
그리고 버튼을 클릭하면 값이 보이게 하는 메서드를 밖으로 빼서 만들었다.
문제는 문장을 보여줘야하므로 바뀌는 값이 계속 저장되게끔 해야하는데 이 구성을 어떻게 매끄럽게 할지가 가장 큰 고민이다.
from tkinter import *; from chart import *; from display import *; window = Tk(); window.title("Maplotlib Calc"); window.geometry("500x400"); # 결과들을 보여주는 아웃풋 output = display(window, 0, 0); out_entry = output.make_Entry(0,0,70,"light green") # class를 생성할시엔 무조건 frame row, col을 받게끔 해야함 chart = chart(window,2,0,out_entry); # 버튼을 만들기 위함 chart.make_button(); window.mainloop();
from tkinter import *; class chart: def __init__(self, window, row, column, output_entry): self.window = window; self.pad = Frame(window); self.row = row; self.column = column; self.outentry= output_entry; self.pad.grid(row = self.row, column = self.column,sticky = W); def make_button(self): char_lst = ['LINE', 'SCATTER'] r , c = 0,0 for k, v in enumerate(char_lst): def inner(index = k): self.show(index) Button(self.pad, text = v, width =10, command = inner).grid(row = r, column = c) c +=1; def show(self, index): # 버튼만 보여주는 메서드 button_pad = Frame(self.window) button_pad.grid(row =3, column =0, sticky = N); if index == 0: cr = {'black' : 'k', 'green':'g', 'red':'r'}; ls = {'solid' : '-', 'dashed' : '--', 'dashed dot' : '-.'}; marker = {'point' : '.', 'circle' : 'o', 'triangle_up' : '^'}; category = [cr, ls, marker]; r = 0; c = 0; record_lst = []; for i in range(len(category)): for key,value in category[i].items(): def inner(k = key, v = value, index =i): print(i) del record_lst[i:i+1]; record_lst.insert(i,{k,v}); self.button_action(k,record_lst); Button(button_pad,text = i, width = 10, command = inner).grid(row = r, column=c); c += 1; if c > 2: c = 0; r += 1; def button_action(self,key,lst): #str = "plt.plot([10, 20, 30, 40], [1, 4, 9, 16], c= '%s', ls='%s', marker='%s')" %(lst[0][key],lst[1][key], lst[2][key]); print(lst); self.outentry.delete(0, END); self.outentry.insert(END, "Test");
'파이썬 > 도전) 앱만들기' 카테고리의 다른 글
Matplot calculatior 다시 시작(클래스 분류화) (0) | 2018.07.26 |
---|---|
matplotlib calculator 클래스화 (0) | 2018.07.11 |
matplotlib calculator 2회차 (0) | 2018.07.10 |
matplotlib 계산기) 1차 대략적 구성 (0) | 2018.07.07 |
계산기 모듈화 하기 (0) | 2018.07.04 |