편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.02.16

    선배님들. 파이썬 Tkinter 버튼 멈춤현상 질문드립니다.


    안녕하세요.

    파이썬 공부중인 입문자 입니다.

    다름이 아니라 파이선 Tkinter 이용해서 간단한 스크린샷 찍는 프로그램을 만드는 중입니다.

    하기와 같은 내용으로 멈춤현상이 발생하여 이렇게 선배님들에게 질문드립니다.

    프로그램 동작 순서는 하기와 같습니다.

    윈도우창 띄움 -> 시작버튼 클릭 -> 마우스 휠 버튼 감시 -> 마우스 휠 버튼 클릭시 스크린샷 찍기 -> 멈춤현상 발생

    (제가 구현원하는 방식은 단순히 시작버튼을 누르고 나서 마우스 휠 버튼을 누를때마다 계속 스크린샷을 찍는게 목표입니다.)

    아래는 소스코드 입니다.

    import pyautogui
    import time  
    import mouse 
    import threading
    from tkinter import *
    
    
    # 윈도우 창 생성 및 버튼 화면 조절
    root = Tk() 
    root.title("Wheel Button SC 찍기") 
    root.geometry("540x480+100+100")
    root.resizable(False,FALSE)
    
    
    # 시작 버튼 누르면 마우스 휠버튼 감시 ->휠 버튼 클릭시 스크린샷 찍기
    def btnscreen(): 
        while True: 
            if mouse.is_pressed("middle"):
                pyautogui.hotkey('win','prtscr')
    
            if pyautogui.press('z'):
                break    
    
    
    # 시작 버튼 생성
    btn6 = Button(root,text='시작버튼',command=btnscreen) 
    btn6.pack()
    
    # 윈도우창 계속 띄우기
    root.mainloop()
    
    

    (구글링하여보니, 스레드와 타이머를 구현하라고 나와있지만 막상 현재 코드에 어떻게 적용할지 막막합니다.)

    이상입니다. 선배님들 답변 부탁드립니다. 감사합니다.

  • 프로필 알 수 없는 사용자님의 편집
    날짜2021.02.15

    선배님들. 파이썬 Tkinter 버튼 멈춤현상 질문드립니다.


    안녕하세요.

    파이썬 공부중인 입문자 입니다.

    다름이 아니라 파이선 Tkinter 이용해서 간단한 스크린샷 찍는 프로그램을 만드는 중입니다만..

    하기와 같은 내용으로 멈춤현상이 발생하여 이렇게 선배님들에게 질문드립니다.

    프로그램 동작 순서는 하기와 같습니다..

    윈도우창 띄움 -> 시작버튼 클릭 -> 마우스 휠 버튼 감시 -> 마우스 휠 버튼 클릭시 스크린샷 찍기 -> 멈춤현상 발생

    (제가 구현원하는 방식은 단순히 시작버튼을 누르고 나서 마우스 휠 버튼을 누를때마다 계속 스크린샷을 찍는게 목표입니다.)

    아래는 소스코드 입니다.

    import pyautogui
    import time  
    import mouse 
    import threading
    from tkinter import *
    
    
    # 윈도우 창 생성 및 버튼 화면 조절
    root = Tk() 
    root.title("Wheel Button SC 찍기") 
    root.geometry("540x480+100+100")
    root.resizable(False,FALSE)
    
    
    # 시작 버튼 누르면 마우스 휠버튼 감시 ->휠 버튼 클릭시 스크린샷 찍기
    def btnscreen(): 
        while True: 
            if mouse.is_pressed("middle"):
                pyautogui.hotkey('win','prtscr')
    
            if pyautogui.press('z'):
                break    
    
    
    # 시작 버튼 생성
    btn6 = Button(root,text='시작버튼',command=btnscreen) 
    btn6.pack()
    
    # 윈도우창 계속 띄우기
    root.mainloop()
    
    

    (구글링에 스레드와 타이머를 구현하라고 나와있지만 막상 현재 코드에 어떻게 적용할지 막막합니다..)

    이상입니다. 선배님들 답변 부탁드립니다.. 감사합니다 (VS CODE 로 작성하였습니다.)