아래 코드에서 OptionMenu와 클릭 할 때 기능을 수행하는 버튼이있는 GUI가 있습니다. 드롭 다운 목록에서 첫 번째 옵션을 선택한 다음 버튼을 클릭하면 배열 statements
배열의 각 항목을 반복해야합니다.파이썬 for 루프는 수행되지만 루프는 수행되지 않습니다.
예를 들어, 각 조합이 결과를 생성하고 파일의 새 줄에 쓰기 위해 단추 뒤의 기능을 트리거하는 아래 조합을 원합니다.
- 첫 번째 옵션 - 첫 번째 문
- 첫 번째 옵션 - 두 번째 문
- 첫 번째 옵션 -
나중에 두 번째 옵션을 선택하는 경우에 세 번째 성명, 그것은 것입니다 1 차/2 차/셋째을 통해 다시 루프 성명서.
아마도 버튼을 클릭 할 때 파일에 기록 된 결과가 하나 밖에 없기 때문에 내 for-in 루프가 잘못된 위치에있을 수 있으며 잘못된 결과가 표시 될 수 있습니다 (내 기능이 문장 유사성을 계산하여 잘못된 var/string을 선택할 수 있습니다). 그리고 한 번 실행 후에 루프가 멈추지 않을 것입니다. , 별도로 var2
는 (귀하의 예제와 함께 오류가 발생하는) 코드에 존재하지 않는다는 사실에서
import sys
import tkinter
import SemanticSim
from tkinter import *
master = Tk()
a = IntVar()
var1 = StringVar(master)
var1.set("-- Choose One Option --") # initial value
var2 = StringVar(master)
x3 = StringVar()
x3.set("Click the button to get result...")
master.title("Graphical User Interface")
master.geometry("800x600")
########################################## METHODS ##############################################
def ButtonClickMethod():
a = var1.get() # get the text value of selected menu option
var1.set(a) # sets value to label when needed to, label needs to be set in specific manner
x1 = var1.get()
a = var2.get()
var2.set(a)
statements = ["First Statement", "Second Statement", "Third Statement"]
for statement in statements:
x2 = var2.get() # if I put `statement` in the bracket, I get this error: "TypeError: get() takes 1 positional argument but 2 were given"
x3.set(SemanticSim.SemanticSimilarity(x1, x2));
#############################################################################################
b3 = Button(master, text="Calculate Results", command=ButtonClickMethod)
b3.place(x=100, y=200)
label1 = Label(master, text="Choose One Option ")
label1.place(x=20, y=100)
option1 = OptionMenu(master, var1, "First Option", "Second Option", "Third Option")
option1.config(width=50)
option1.pack()
option1.place(x=200, y=100)
CaptionLabelResult1 = Label(master, text="Semantic Analysis Result: ")
CaptionLabelResult1.place(x=50, y=250)
LabelResult1 = Label(master, textvariable=x3)
LabelResult1.place(x=200, y=250)
mainloop()
'의견'이란 무엇입니까? '진술 '이라고하셨습니까? – Holloway
당신의 코드는'statements'에서 문자열로 아무 것도하지 않는 것처럼 보입니다. 또한 세미콜론은 무엇입니까? 파이썬은 자바 나 C와는 다르다. –
'StringVar's에 대해서는 잘 모르지만'var2'가 정의되지 않은 것처럼 보입니다. - var1을 의미합니까? 아무것도하지 않을거야. – boboquack