여니의 프로그래밍 study/파이썬

[파이썬] 여러 개의 버튼을 각자 작동하게 하는 법 (Qt designer로 UI 구현)

여니's 2021. 2. 4. 22:53

동기함수로 작성되어 있는 경우,

위에서부터 차례대로 함수를 수행한다.

 

예를 들어,

실행하기 버튼을 누르면

실행하기 버튼에 해당되어 있는 함수가 끝나기 전까진

어떠한 버튼도 눌리지 않는다.

 

그래서 나는 실행하기 버튼을 누른 상태에서

종료하기 버튼을 눌러 상태를 바꿔보려고 한다.

 

처음엔 비동기함수로 작성하려 했으나

Qt designer로 파이썬 ui를 구현해서,,

좀 어렵게 됐다..

 

(변명이라면 변명이겠지만,,

아직 방법을 잘 모름..)

 


 

1.  def __init__ () 함수에

stop_button 변수 (bool 타입)를 선언해준다.

값은 False

 

 

2. 실행하기 메서드 (Thread 이용)

위 함수 execute1은 

Thread를 정의해둔 함수!

즉 execute 함수가 진또배기라는 거!

위 함수는 그냥,, 뭐랄까

스레드를 작동시키는 단순도구일 뿐!

 

def 실행하기 메소드()에서

if문을 걸어줘야 한다.

stop_button의 값이 true일 경우,

stop_button의 값을 다시 false로 바꾼 뒤

break문을 걸어서

while문을 빠져나오고

실행 함수는 더이상 수행되지 않는다.

 

 

3. 종료 함수

종료 함수 소스는 이렇다.


참고 블로그

hnydiy.tistory.com/161

 

6. [Python] QThread , Thread 의 이해

import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QBoxLayout from PyQt5 import QtCore from PyQt5.QtCore import QObject class Test(QObject): def __init__(self): super().__ini..

hnydiy.tistory.com