BOOK NOW!
[contact-form-7 404 "Not Found"]

pyqt4 qthread 예제

02 Aug pyqt4 qthread 예제

이 예제에서는 주 사용자 인터페이스 스레드를 계속 실행하는 동안 그림을 위한 별자리 표시를 수행하는 작업을 수행하기 위해 별도의 스레드를 만드는 방법을 보여 줍니다. 작업자 스레드는 각 별을 자체 개별 이미지로 끌어들이고 각 이미지를 주 응용 프로그램 스레드에 있는 예제의 창으로 다시 전달합니다. 파이썬으로 PyQt QThread를 사용하여 응답 GUI를 구축하고 유지하는 이 간단한 예는 유연하고 빠르게 진행되는 파이썬 GUI의 출시를 잘 보여주는 좋은 예가 될 수 있습니다. 실시간 시스템으로 파이썬은 항상 스레드, 일회성 실행 프로세스 및 멀티 프로세싱과 관련된 문제를 해결해야합니다. 따라서 QMainWindow 클래스와 같은 내부에서 해당 스레드의 예제 사용법은 다음과 같이 합니다: GitHub에서 사용할 수 있는 완료된 qthread_app.py 파일: https://gist.github.com/WEBMAMOFFICE/fea8e52c8105453628c0c2c648fe618f PyQt QThreading에 대한 이 기본 자습서는 일부 서비스와의 통신을 위해 PyQt5를 기반으로 GUI를 구현하는 간단한 예제를 보여 줍니다. 이렇게 하려면 PyQt5 프레임워크에서 QThread 클래스를 사용하는 방법을 알아야 합니다. 표준 파이썬 라이브러리에는 스레딩 패키지가 있는데, 이는 좋은 것이지만 PyQt GUI의 경우 이 클래스는 스레드와 주 응용 프로그램 간에 신호를 보내고 내보낼 수 있는 기능을 제공하기 때문에 QThread 클래스를 사용하는 것이 좋습니다. 또한 도구를 사용하여 소스 페이지에서 정보를 얻고 GUI 응용 프로그램에서 몇 초마다 표시합니다. 작업 환경으로, 물론, 아나콘다있을 것입니다, 나는이 시간에 파이썬 도구의 가장 강력하거나 대체 세트를 찾을 수 없기 때문에. PyQt QThread 클래스를 사용하여 기본 GUI 창을 만드는 방법을 알아 봅시다: 이 단추 또는 다른 단추를 누를 때 스레드가 실행되지 않을 수 있기 때문에 시도/시공을 제외한 다른 창을 사용합니다. 이 구성은 다른 구성으로 변경할 수 있습니다., 예를 들어, 우리는이 스레드가 작동 여부를 확인할 수 있습니다 또는 일부 이벤트가 발생 하는 경우: 하지 경우 self.thread.isRunning(). 그리고 주요 QthreadApp 클래스의 __init__ 함수의 맨 아래에 추가하여 함수에 단추를 연결하려면 이 줄이 있습니다. 우리는 단순히 적절한 크기의 투명한 이미지를 그립니다.

이 예제의 기본 창은 QWidget입니다. 필요에 따라 다시 사용할 수 있는 단일 Worker 인스턴스를 만듭니다. 우리는이 응용 프로그램에 더 많은 기능을 추가해야합니다. 이를 위해 앱에 몇 가지 기능을 추가합니다. QThread 클래스 시작 함수의 내용은 코드로 변경되어 페이지, 소스 및 줄의 편집 필드에서 일부 정보를 가져옵니다. 이 작업을 해결하려면 예를 들어, BeautifulSoup와 같은 추가 라이브러리가 필요합니다. 핍으로 설치하십시오 – 존재하지 않는 경우:> pip 설치 beautifulsoup4가져오기 추가 도구: 이 예제에서는 첫 번째 접근 방식(양방향 통신)을 사용하여 QThread 클래스의 작업 구조를 더 잘 이해할 수 있습니다. 이 작업을 수행하는 여러 가지 방법이 있지만 주로 이것을 고수합니다 : _get_top_post는 원래 reddit 코드에서 복사되고 실행 메서드는 새 스레드를 만들 때 정의 된 self.subreddits 변수를 통해 이동합니다. 또한 사용할 수 있는 모든 QThread 개체에 절전 모드 메서드가 있기 때문에 time.sleep(int)을 사용할 필요가 없습니다.

작업자 스레드에 의해 별이 그려질 때마다 addImage() 슬롯에 연결된 신호를 방출합니다. 이 슬롯은 QRect 값으로 호출되어 뷰어 레이블이 보유한 pixmap에 별을 배치해야 하는 위치와 별 자체의 이미지를 나타냅니다. 스레드 클래스의 실행 메서드에 무엇이든 실행됩니다. isRunning 메서드와 같은 것을 사용하여 스레드가 코드에서 여전히 실행되고 있는지 확인할 수 있습니다. 대부분의 시간 당신은 단지 이것들을 사용하고 있습니다, 이는 모두 자명한 것입니다: 종료, 시작, 종료, isFinished, isRunning .

No Comments

Sorry, the comment form is closed at this time.