처음에는 코드 길이에 대해 사과하지만 나는 모두 보여주고 싶었습니다. 'n'엔트리 위젯에 변수 저장 Tkinter 인터페이스
나는 "목록"나는 옵션에 추가합니다 세 번째 옵션 메뉴를 변경
가 'N'값 (도시하지 않음) 가지고 :나는이처럼 보이는 인터페이스를 가지고있다. 그런 다음 사용자가 값을 입력 할 수있는 곳에 'n'열이 필요합니다.
또한 인터페이스에 의해 열린 텍스트 파일에 따라 'n'개의 행이있을 수있는 문제가 있습니다.
따라서 가능한 경우 (상자에서 동일한 값을 반복하지 않고 'n'열이 필요함) 궁극적으로 '행'및 '열'을 추가하는 것이 궁금합니다. 4 개의 열을 추가합니다. 행의 양을 읽을 수는 있지만 행의 수에 따라이 값을 모두 반환하는 데 문제가 있습니다. 지금까지 한 행을 할 수 있습니다 ..
고마워요!
def numberwritten(number):
fg = number.get()
print fg
numbers = [StringVar() for i in xrange(4) ] #Name available in global scope. Need to add other rows?
for i in numbers:
i.trace('w',lambda a,b,c,n=i: numberwritten(n))
def ChoiceBox(choice):
co_ord = str(frame_table.grid_size())
col, rows = map(float, co_ord.strip('()').split(','))
rows = int(rows)
if choice == "Fixed":
empty1.destroy()
#choice_frame.grid_forget()
tkMessageBox.showinfo("Message", "No optimisation, value fixed.")
elif choice == "List":
column = 7
for i in xrange(4):
choice_title = Label(frame_table, text='Value %g'% float(i+1), bg='white', borderwidth=0, width=10)
choice_title.grid(row=1, column=column+i, sticky="nsew", padx=1, pady=1)
boxes=[]
for i in xrange(4):
for j in range(2, rows):
box=Entry(frame_table,bg='white',borderwidth=0,textvariable=numbers[i], width=10, justify="center") # Here I'm having problems with rows
box.grid(row=j,column=column+i, sticky='nsew', padx=1, pady=1)
boxes.append(box)
box1,box2,box3,box4=boxes
elif choice == "Interval" or "Optimisation":
for i in xrange(2):
choice_title1 = Label(frame_table, text='Min Value', bg='white', borderwidth=0)
choice_title1.grid(row=0, column=column, sticky="nsew", padx=1, pady=1)
choice_title2 = Label(frame_table, text='Max Value', bg='white', borderwidth=0)
choice_title2.grid(row=0, column=column+1, sticky="nsew", padx=1, pady=1)
boxes=[]
for i in xrange(2):
box=Entry(frame_table,bg='white',borderwidth=0,textvariable=numbers[i])
box.grid(row=rows+1,column=i, sticky='ew', padx=1, pady=1)
boxes.append(box)
box1,box2,box3,box4=boxes
업데이트 : 나는 약간 전진 한 및 클래스 창에서 지금] 선택의 섹션 :] 선택 (자동, 선택), 내가 동의하는 주석 라인을 변경할 필요로하는 곳에 나는 다음과 같은 섹션이 'n'개의 상자.
column = 7
for i in xrange(self.number_boxes):
choice_title = Label(self.frame_table, text='Value %g'% float(i+1), bg='white', borderwidth=0, width=10)
choice_title.grid(row=1, column=column+i, sticky="nsew", padx=1, pady=1)
boxes=[]
for i in xrange(self.number_boxes):
for j in range(2, rows):
box=Entry(self.frame_table,bg='white',borderwidth=0,textvariable=numbers[i], width=10, justify="center")
box.grid(row=j,column=column+i, sticky='nsew', padx=1, pady=1)
boxes.append(box)
#box1,box2,box3,box4=boxes
I 계속하지만 다음 완전히 바람직 각 행에 대해, 값들의 목록을 추출하는 예를 원래의 코드의 처음 몇 줄 포함 numberwritten를 사용하는 문제가있다.
'두 번째 옵션 메뉴를'목록 '으로 변경하면 실제로 세 번째 옵션 메뉴 ("선택 항목"열에 있음)를 의미합니까? 또한 몇 개의 열을 추가 할 수 있습니까? 당신은 "n"이라고 말합니다. "n"을 100으로 할 수 있습니까? "n"이 단지 몇 가지 이상일 수 있다면이 솔루션은 유용성 관점에서 잘 확장되지 않습니다. –
죄송합니다. 세 번째로 질문을 편집했습니다. n은 엄청나게 많지 않을 것입니다. 어쩌면 최대 20 대 정도입니다. – user2063
열 (column) 당 매우 보수적 인 100 픽셀을 사용하면 폼 너비에 2000 픽셀을 추가하는 것에 대해 알 수 있습니다. 이 길로 가고 싶습니까? –