본문 바로가기

공부기록/Python

[tkinter] 간단 예제

// Python GUI

// 속도와 거리 산출하여 조건 만족시 메시지박스(알림창) 출력

// 속도와 거리는 randrange() 사용하여 임의의 값 생성되도록 함 

 

from tkinter import *   ## tkinter module import

from tkinter import messagebox ## tkinter messagebox import

from random import *    ## random module import

 

class App : # 여기서부터 App class 구현

    def __init__(self, master) :    # define

        frame = Frame(master)

        frame.pack()

 

        button1 = Button(frame, text = "속도", command = self.measure_s)

        button1.grid(row = 0, column = 0) # 0행 0열에 표시

        self.speed_var = IntVar() # double형 값을 입력받는 공간

        Label(frame, textvariable = self.speed_var).grid(row = 0, column = 1) # 0행 1열에 표시

        # self.speed_var이 출력

 

        button2 = Button(frame, text = "거리", command = self.measure_d)

        button2.grid(row = 1, column = 0) # 1행 0열에 표시

        self.distance_var = IntVar() # int형 값을 입력받는 공간,

        Label(frame, textvariable = self.distance_var).grid(row = 1, column = 1) # 1행 1열에 표시

        # self.distance_var이 출력

 

        button3 = Button(frame, text = '측정', command = self.measure)

        button3.grid(row = 2, columnspan = 2)

 

    def measure_s(self) :

        s1 = randrange(50, 151) # 50이상 151미만 난수 생성

        self.speed_var.set(s1)

 

 

    def measure_d(self) :

        d1 = randrange(100, 151) # 100이상 151미만 난수 생성

        self.distance_var.set(d1)

 

    def measure(self) :

        s2 = self.speed_var.get() # intVar -> int형으로 s2에 저장

        d2 = self.distance_var.get()  # intVar -> int형으로 d2에 저장

 

        # if((s2 > 99) and (d2 < 121)) : # 속도 99 초과(100 이상), 거리 121미만(120 이하) - 아래 행과 같음

        if((s2 >= 100) and (d2 <= 120)) : # 속도 100 이상, 거리 120 이하

            messagebox.showinfo("주의!", "속도를 줄이세요") # 메시지박스 출력(제목, 내용 순)

 

root = Tk()

root.wm_title('제 목') # window(GUI) 제목

app = App(root)

root.mainloop()

 

'공부기록 > Python' 카테고리의 다른 글