[Python] tkinter -02. 버튼 생성

  • 하단에 참고 링크를 보면, 더 좋은 강좌들이 많다. “나도코딩”이라는 분의 강좌를 기반으로 내가 원하는대로 글을 작성할 예정이다.

윈도우 생성만 하기에는 글이 너무 아쉬워서 버튼생성부까지 글을 작성하려고 한다.
바로 바로 실행해서 화면을 볼수 있기 때문에, 너무 즐거운 코딩이다.

파일명은 원하는데로 만들되, 확장자는 .py로 만들것.
동영상에서는 윈도우로 개발하기 때문에, 배경색이 설정되지만, Mac에서는 배경색이 지정되지 않는다.

from tkinter import *

root = Tk()
# 타이틀 설정
root.title("GUI Python")

# 윈도우 크기 설정
# root.geometry("640x480")    # 가로 * 세로
# root.geometry("640x480+100+200")    # 가로 * 세로 + x좌표 + y좌표
root.geometry("640x480+800+200")    # 가로 * 세로 + x좌표 + y좌표

# 윈도우 크기 변경
# root.resizable(False, False) # x(너비), y(높이) 값 변경 허용

# 버튼 생성
btn1 = Button(root, text="버튼1")
btn1.pack()

# 버튼에 x, y축에 패딩을 넣는 방법
# 글자수만큼 늘어난다.
btn2 = Button(root, padx=50, pady=10, text="버튼2")
btn2.pack()

# 버튼에 넓이와 높이를 강제 지정하는 방법
btn4 = Button(root, width=10, height=3, text="버튼4")
btn4.pack()

# mac에서 bg color가 지원되지 않는다.
# btn5 = Button(root, fg="red", bg='yellow', text="버튼5")
# btn5.pack()

# 버튼 터치 이벤트 함수
def btncmd():
    print("버튼이 클릭되었습니다.")

# 이미지 버튼에 삽입
photo = PhotoImage(file="image/apple.png")
btn6 = Button(root, image=photo, command=btncmd)
btn6.pack()

root.mainloop() 

좀더 하고 싶지만, 오늘은 여기까지만..
궁금하다면 즐겨찾기를 해주시고, 자주 놀러와주세요.

  • 참고 링크
  • https://www.youtube.com/watch?v=bKPIcoou9N8&t=3723s

[Python] tkinter -01. 윈도우 생성

파이썬 강좌를 찾아보던중 좋은 강좌가 있어서 해당 내용을 작성해 본다.

tkinter 라이브러리를 통해 GUI 환경 개발을 진행할것이다.
맨날 문법만 공부하거나, 마땅히 응용할게 없다면 GUI부터 익혀서 응용해보자.
(하단에 참고 링크를 보면, 더 좋은 강좌들이 많다. “나도코딩”이라는 분의 강좌를 기반으로 내가 원하는대로 글을 작성할 예정이다.)

GUI를 어느정도 학습하고 나면 좀더 재미있는 것들을 진행해보겠다.
파이썬으로 기본 윈도우를 띄우는 코드이다.

window_test.py 로 작성해서 실행해 볼 것.
코드는 간단하니 부가적인 설명은 생략.

from tkinter import *

root = Tk()
# 타이틀 설정

root.title("GUI Python")

# 윈도우 크기 설정
root.geometry("640x480") # 가로 * 세로
# root.geometry("640x480+100+200")    # 가로 * 세로 + x좌표 + y좌표

#윈도우 크기 변경
root.resizable(False, False) # x(너비), y(높이) 값 변경 허용

root.mainloop() 
  • 참고 링크
  • https://www.youtube.com/watch?v=bKPIcoou9N8&t=3723s

pyautogui 라이브러리 사용중 pyautogui.locateOnScreen이 정상동작하지 않을 경우에 대처하는 방법

pyautogui 라이브러리 사용중 pyautogui.locateOnScreen이 정상동작하지 않을 경우에 대처하는 방법.

윈도우 사용자라면 이와 같은 경험은 없을것으로 본다.
하지만 맥 사용자가 화면을 캡쳐해서 사용하려다 보면, 같은 이미지인데 찾을수 없는 현상이 생기곤 한다.

아래 테스트1, 테스트2와 같은 경우이다.
하루 정도 고민을 하며, 집에 돌아오자마자 해보면서 원인을 찾았다.

import pyautogui

# 테스트 1
num7 = pyautogui.locateOnScreen('test.png')
print(num7)

# 결과는 None

# 테스트 2

# 신뢰도를 좀 낮춰야 판단이 가능하다. 이유는? 캡쳐시 사이즈 변경??
img = pyautogui.locateOnScreen('./7.png', confidence=0.8, grayscale = True)
print(img)

나와 같은 고민을 한 맥 유저가 있으신가??
그렇다면 아래와 같은 명령어로 이미지를 캡처한다음에 실행 시켜보도록 하자.
정상으로 이미지를 찾아내는 마법을 볼것이다.

image = pyautogui.screenshot()
image.save('test.png')

원인은 무엇일까?
이미지 사이즈를 비교해보진 않았으나, 맥은 @2x 와 같은 이미지 프로세싱 기술을 사용할것으로 보인다.

귀찮아서 검증은 생략한다.

도움이 되었길.

맥에서 pip install error 발생시

파이썬 라이브러리를 설치 하려고 pip 명령어를 사용할것이다.
보통의 사용자들은 윈도우 사용자가 많기 때문에 pip install xxxx를 실행시키라고 할테니까 말이다..

맥에서 pip install xxxx 를 실행하면 아래와 같은 에러가 발생할 것이다.

pip install selenium  
zsh: command not found: pip

맥에서는 pip3를 사용할수 있다.

ip3 install paperclip
Collecting paperclip
  Downloading https://files.pythonhosted.org/packages/6f/6c/e7aade34b79c54034c689f2b5b5ae20f7ac974d28e63f54c06f32e6ca541/paperclip-2.2.4.tar.gz (65kB)
     |████████████████████████████████| 71kB 193kB/s 
Collecting Django (from paperclip)
  Downloading https://files.pythonhosted.org/packages/a9/4f/8a247eee2958529a6a805d38fbacd9764fd566462fa0016aa2a2947ab2a6/Django-3.0.5-py3-none-any.whl (7.5MB)
     |████████████████████████████████| 7.5MB 473kB/s 
중략...

pip을 설치해서 사용할수도 있는데, 굳이…

도움이 되길 바란다.