반응형
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
반응형
'파이썬(Python) > tkinter' 카테고리의 다른 글
파이썬 tkinter 변수값 가져오기(StringVar, IntVar, DoubleVar, BooleanVar) - 예제로 이해하기 (0) | 2021.09.12 |
---|---|
(Python, tkinter) jpg, png, jpeg 이미지 파일 업로드 하기 (1) | 2021.09.09 |
Python tkinter Canvas 함수 및 옵션 예제로 이해하기 (0) | 2021.09.08 |
(파이썬) 키보드 입력으로 도형 생성, 움직이는 그림 예제 (canvas, tkinter) (5) | 2021.09.05 |
파이썬 윈도우창 투명(흐리)하게 조절하는 슬라이드바 만들기 (tkinter) (2) | 2021.09.02 |