파이썬(Python)/tkinter

(파이썬) 새 윈도우창 만들기, 클릭 시 특정 함수 실행하기 예제 (tkinter)

끄적끄적아무거나 2021. 9. 3. 09:30
반응형

Python) New window 만들기, 새로 만들어진 윈도우 창 클릭 시 색깔 변경하는 예제 만들기 

 

이번 파이썬 예제는 tkinter로 윈도우창을 만들고 윈도우창에 버튼 클릭 시 새로운 창을 만든다. 그리고 그 창을 마우스로 클릭 시 창의 색깔을 변경한다. 

 

기능을 요약정리하면 아래와 같다. 

 

  • 버튼있는 윈도우창 만들기
  • 버튼 클릭 시 새로운 윈도우창 생성하기
  • 새로운 윈도우창 클릭 시 새윈도우 창 색을 빨간 색으로 변경하기

코드 - 새로운 윈도우창만들기>>

from tkinter import *
import tkinter.ttk as ttk

app = Tk()

def new_window():
	global new
	new = Toplevel()


making_window_btn = Button(app, text="새창만들기", command=new_window)
making_window_btn.pack(pady="5")

app.title('scribblinganything.tistory.com')
app.geometry("200x50")

app.mainloop()

 

결과 - 새로운 윈도우창만들기>>

아래 그림 왼쪽 창이 먼저 만들어 졌고 버튼 클릭 후 오른쪽 창이 생성되었다.

 

코드 - 새로운 윈도우창만들기 + 새로운 창 클릭 시 색깔 변경하기>>

from tkinter import *
import tkinter.ttk as ttk

app = Tk()

def changing_color(_):
    new.configure(bg="red")

def new_window():
	global new
	new = Toplevel()
	new.bind("<Button-1>", changing_color)

making_window_btn = Button(app, text="새창만들기", command=new_window)
making_window_btn.pack(pady="5")

app.title('scribblinganything.tistory.com')
app.geometry("200x50")

app.mainloop()

 

결과 - 새로운 윈도우창만들기 + 새로운 창 클릭 시 색깔 변경하기>>

왼쪽 창의 버튼을 클릭 후 오르쪽 창이 만들어 졌고 오른쪽 창을 마우스로 클릭 하니 빨간색으로 바뀌었다. 

 

주석 - 새로운 윈도우창만들기 + 새로운 창 클릭 시 색깔 변경하기>>

위 코드 작성에서 주의 할 점은 bind로 묶을 때 클릭 시 changing_color 함수가 실행되게 만들었는데 bind으로 연결되는 함수 특성 상 하나의 인자값을 가지고 있어야 해서 의미 없는 입력값으로 _ 를 넣었다. 만일 입력 값을 넣지 않으면 아래와 같은 에러 메세지가 발생 한다. 

 

File "C:\Users\forgo\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1892, in __call__
    return self.func(*args)
TypeError: changing_color() takes 0 positional arguments but 1 was given

 

 

반응형