MBTI TEST 만들기

image


from tkinter import *
from tkinter import messagebox

def result() :
    global lbl_var
    mbti_result = ["",""]
    istj = ["실제 사실에 대하여 정확하게 체계적으로 기억하며 일처리에 신중하며 책임감이 강하다.",
            "회계, 법률, 생산, 건축, 의료, 사무직, 관리직 등"]
    istp = ["말이 없으며 객관적으로 인생을 관찰하는 편이고 필요 이상으로 자신을 발휘하지 않는다.",
            "법률, 경제, 마켓팅, 판매통계분야 등"]
    estp = ["사실적이고 관대하며 개방적이고 사람이나 일에 대한 선입견이 별로 없다.",
            "의사, 군인, 검사, 경찰관, 운동가 등"]
    estj = ["실질적이고 현실감이 뛰어나며 일을 조직하고 계획하여 추진시키는 능력이 있다.",
            "사업가, 행정관리, 생산건축 등"]
    isfj = ["책임감이 강하고 온정적이며 헌신적이고 침착하며 인내력이 강하다.",
            "의료, 간호, 교직, 사무직, 사회사업 등"]
    isfp = ["말없이 다정하고 양털안감을 넣은 오버코트처럼 속마음이 따뜻하고 친절하다.",
            "농장경영, 교통, 유흥업, 간호직, 비서직 등"]
    esfp = ["현식적이고 실제적이며 친절하다. 어떤 상황이든 잘 적응하며 수용력이 강하고 사교적이다.",
            "의료판매, 교통, 유흥업, 간호직, 비서직 등"]
    esfj = ["동정심이 많고 다른 사람에게 관심을 솓으며 인화를 중시한다. 동료애가 많고 친절하다.",
            "교직, 성직, 심리상담, 예술, 문학 등"]
    infj = ["창의력, 통찰력이 뛰어나며 강한 직관력으로 말없이 타인에게 영향력을 미친다.",
            "성직, 심리치료와 상담, 예술과 문학 분야 등"]
    infp = ["마음이 따뜻하고 조용하며 자신이 관계하는 일에 대하여 책임감이 강하고 성실하다.",
            "언어, 학문, 문학, 상담 등"]
    enfp = ["온정적이고 창의적이며 항상 새로운 가능성을 찾고 시도한다.",
            "상담, 교육, 저널리스트, 광고, 판매, 작가 등"]
    enfj = ["민첩하고 동정심이 많고 사교적이며 인화를 중요시하고 참을성이 많다.",
            "교직, 성직, 심리상담, 예술, 문학 등"]
    intj = ["행동과 사고에 있어서 독창적이며 강한 직관력과 의지와 결단력, 인내심이 있다.",
            "과학, 엔지니어링, 발명, 정치, 철학 등"]
    intp = ["과묵하나 관심이 있는 분야에 대해서는 말을 잘하며 이해가 빠르고 높은 직관력으로 통찰하는 재능과 지적 호기심이 많다.",
            "순수과학, 연구, 수학, 엔지니어링, 경제, 철학, 심리학 등의 학문"]
    entp = ["독창적이며 창의력이 풍부하고 넓은 안목을 갖고 있으며 다방면에 재능이 많다.",
            "발명가, 과학자, 언론, 마켓팅, 컴퓨터 분석 등"]
    entj = ["활동적이고 솔직하며 결정력과 통솔력이 있고 장기적 계획과 거시적 안목을 선호한다.",
            "판매업, 건축업, 선장, 군인, 경찰관 등"]
                
    lbl_var.set(E_I_var.get() + S_N_var.get() + T_F_var.get() + J_P_var.get())


    if lbl_var.get() == "ISTJ" :
        mbti_result[0] = istj[0]
        mbti_result[1] = istj[1]
    elif lbl_var.get() == "ISTP" :
        mbti_result[0] = istp[0]
        mbti_result[1] = istp[1]
    elif lbl_var.get() == "ESTP" :
        mbti_result[0] = estp[0]
        mbti_result[1] = estp[1]
    elif lbl_var.get() == "ESTJ" :
        mbti_result[0] = estj[0]
        mbti_result[1] = estj[1]
    elif lbl_var.get() == "ISFJ" :
        mbti_result[0] = isfj[0]
        mbti_result[1] = isfj[1]
    elif lbl_var.get() == "ISFP" :
        mbti_result[0] = isfp[0]
        mbti_result[1] = isfp[1]
    elif lbl_var.get() == "ESFP" :
        mbti_result[0] = esfp[0]
        mbti_result[1] = esfp[1]
    elif lbl_var.get() == "ESFJ" :
        mbti_result[0] = esfj[0]
        mbti_result[1] = esfj[1]
    elif lbl_var.get() == "INFJ" :
        mbti_result[0] = infj[0]
        mbti_result[1] = infj[1]
    elif lbl_var.get() == "INFP" :
        mbti_result[0] = infp[0]
        mbti_result[1] = infp[1]
    elif lbl_var.get() == "ENFP" :
        mbti_result[0] = enfp[0]
        mbti_result[1] = enfp[1]
    elif lbl_var.get() == "ENFJ" :
        mbti_result[0] = enfj[0]
        mbti_result[1] = enfj[1]
    elif lbl_var.get() == "INTJ" :
        mbti_result[0] = intj[0]
        mbti_result[1] = intj[1]
    elif lbl_var.get() == "INTP" :
        mbti_result[0] = intp[0]
        mbti_result[1] = intp[1]
    elif lbl_var.get() == "ENTP" :
        mbti_result[0] = entp[0]
        mbti_result[1] = entp[1]
    elif lbl_var.get() == "ENTJ" :
        mbti_result[0] = entj[0]
        mbti_result[1] = entj[1]

    txt_result.delete(1.0, "end")
    
    txt_result.insert(1.0, "[특징]" + "\n")
    txt_result.insert(2.0, "=> " + mbti_result[0] + "\n")
    txt_result.insert(3.0, "[관련직업]" + "\n")
    txt_result.insert(4.0, "=> "  + mbti_result[1] + "\n")

    txt_result.tag_add("start", "1.0", "1.4")
    txt_result.tag_configure("start", background="red", foreground="white")

    txt_result.tag_add("start", "3.0", "3.6")
    txt_result.tag_configure("start", background="red", foreground="white")

    
    
    
    
################################################################## MBTI 유형 ##################################################################
E_category = ["나는 여러 친구들과 많이 사귀는 편이다."]
I_category = ["나는 몇 명의 친구들과 깊이 사귀는 편이다."]
S_category = ["나는 친구들에게 내가 직접 보고 들은 것에 대해 얘기하는 것을 좋아한다."]
N_category = ["난 친구들에게 내가 상상한 것을 이야기하는 것을 좋아한다."]
T_category = ["나는 불공평한 것이 가장 나쁘다고 생각한다."]
F_category = ["나는 다른 사람의 마음에 상처를 주는 것이 가장 나쁘다고 생각한다."]
J_category = ["내가 해야 할 일을 먼저 하고 논다."]
P_category = ["내가 할 수 있는 일이라면 먼저 재미있게 놀고 난 후에 해도 괜찮다."]
################################################################## MBTI 유형 ##################################################################

window = Tk()
window.title("MBTI TEST by kig2929kig")
window.geometry("600x600")
window.resizable(False,False)


################################################ 제목 #####################################################
ttl = Label(window, text="나의 성격 유형과 관련 직업", font=("Arial", 14, "bold"))
ttl.pack(pady=10)
################################################ 제목 #####################################################

############################################ MBTI 프레임  #################################################
mbti_frm = Frame(window, relief="ridge", bd=1)
mbti_frm.pack(padx=5, pady=5, fill="both")
############################################ MBTI 프레임  #################################################

### 변수 ###
E_I_var = StringVar()
S_N_var = StringVar()
T_F_var = StringVar()
J_P_var = StringVar()
### 변수 ###

############################## MBTI 프레임  - 나의 에너지 방향은 - ########################################
E_I_frm = LabelFrame(mbti_frm, text="나의 에너지 방향은?")
E_I_frm.pack(padx=5, pady=5, fill="x")

rd_btn_E = Radiobutton(E_I_frm, text=E_category[0], variable=E_I_var, value="E")
rd_btn_E.pack(anchor="w")
rd_btn_I = Radiobutton(E_I_frm, text=I_category[0], variable=E_I_var, value="I")
rd_btn_I.pack(anchor="w")
############################## MBTI 프레임  - 나의 인식 기능은 - ##########################################
S_N_frm = LabelFrame(mbti_frm, text="나의 인식 기능은?")
S_N_frm.pack(padx=5, pady=5, fill="x")

rd_btn_S = Radiobutton(S_N_frm, text=S_category[0], variable=S_N_var, value="S")
rd_btn_S.pack(anchor="w")
rd_btn_N = Radiobutton(S_N_frm, text=N_category[0], variable=S_N_var, value="N")
rd_btn_N.pack(anchor="w")
############################## MBTI 프레임  - 나의 판단 기능은 - ##########################################
T_F_frm = LabelFrame(mbti_frm, text="나의 판단 기능은?")
T_F_frm.pack(padx=5, pady=5, fill="x")

rd_btn_T = Radiobutton(T_F_frm, text=T_category[0], variable=T_F_var, value="T")
rd_btn_T.pack(anchor="w")
rd_btn_F = Radiobutton(T_F_frm, text=F_category[0], variable=T_F_var, value="F")
rd_btn_F.pack(anchor="w")
############################## MBTI 프레임  - 나의 생활 양식은 - ##########################################
J_P_frm = LabelFrame(mbti_frm, text="나의 생활 양식은?")
J_P_frm.pack(padx=5, pady=5, fill="x")

rd_btn_J = Radiobutton(J_P_frm, text=J_category[0], variable=J_P_var, value="J")
rd_btn_J.pack(anchor="w")
rd_btn_P = Radiobutton(J_P_frm, text=P_category[0], variable=J_P_var, value="P")
rd_btn_P.pack(anchor="w")

############################## 확인 버튼 ##########################################
btn = Button(window, text="확인", font=("Arial", 12), command=result)
btn.pack()

############################## 결과 Label ##########################################
lbl_var = StringVar()
lbl_var.set("당신의 MBTI : ")
lbl = Label(window, textvariable = lbl_var, font=("Arial", 14, "bold"))
lbl.pack(padx=5, pady=5)
############################## 결과 Text ##########################################
txt_result = Text(window, font=("Arial", 12))
txt_result.pack(padx=5, pady=5, fill="both")
    
window.mainloop()


댓글남기기