python qthread 예제

드로잉 코드는 이 예제와 특별히 관련이 없습니다. 우리는 단순히 적절한 크기의 투명한 이미지를 그립니다. 이제 응용 프로그램에 QThread 클래스를 추가합니다. PyQt와 관련된 QThread 클래스는 일반적으로 작업을 여러 스레드로 분할하여 GUI 응용 프로그램의 속도를 높이는 데 사용됩니다. 이 스레드는 줄 편집 필드에 서명 된 소스에서 정보를 스크랩으로 텍스트 필드를 업데이트 합니다. 위에서 설명한 것처럼 PyQt QThread 클래스와 표준 라이브러리의 파이썬 스레딩 모듈 간의 가장 큰 이점은 신호를 보내고 방출하는 지원입니다. 이러한 신호는 텍스트가 있는 문자열, 변수가 있는 목록, tuples, 정수, 기타 파이썬 형식일 수 있습니다. 이러한 앱의 색상을 변경하거나 텍스트를 삽입 또는 설정 또는 추가할 수 있으며 그리기, 페인트 및 GUI 응용 프로그램을 빠르고 유연하게 만들 수 있는 다른 많은 기능이 있습니다. Python 표준 라이브러리에서 시간 모듈을 추가해 보겠습니다: 이 예제에서는 QThread 클래스의 작업 구조를 더 잘 이해하기 위해 첫 번째 접근 법(양방향 통신)이 사용됩니다. 이 예제의 기본 창은 QWidget입니다.

필요에 따라 다시 사용할 수 있는 단일 Worker 인스턴스를 만듭니다. 따라서 QMainWindow 클래스와 같은 내부 위의 스레드의 예제 사용법은 신호 및 슬롯 메커니즘을 활용하여 주 스레드와 통신하려는 경우 작업자 스레드가 파이썬 스레드가 아닌 PyQt 스레드로 구현됩니다. 응용 프로그램. QThread 클래스를 사용 하 여 PyQt GUI 응용 프로그램을 구축하는 이 간단한 예는 유연하고 빠른 파이썬 기반 GUI의 출시를 보여주는 좋은 데모일 수 있습니다. 실시간 시스템으로 파이썬은 항상 스레드, 일회성 실행 프로세스, 멀티 프로세싱과 관련된 문제를 해결해야합니다. 더 널리 이러한 구조는 책에서 다루고있다 “파이썬 개발자를위한 실습 Qt” – GitHub에서 사용할 수있는 완성 된 qthread_app.py 파일: https://gist.github.com/WEBMAMOFFICE/fea8e52c8105453628c0c2c648fe618f이 예제는 을 만드는 방법을 보여줍니다 이 경우, 그림에 대한 별자리 를 그리는 작업을 수행하기 위해 별도의 스레드를 사용하여 주 사용자 인터페이스 스레드를 계속 실행합니다. 작업자 스레드는 각 별을 자체 개별 이미지로 끌어들이고 각 이미지를 주 응용 프로그램 스레드에 있는 예제의 창으로 다시 전달합니다. 이 책에서는 PyQt5 및 PySide2 바인딩을 사용하여 파이썬 프로그래밍 언어에 대한 그래픽 사용자 인터페이스(GUI) 응용 프로그램을 만드는 세부 정보에서 설명합니다.

스레드의 다양한 구조를 사용하여 생산성을 향상시키고 GUI 응용 프로그램의 성능을 향상시킵니다. GUI 개발자를 위한 기본 사항입니다. 우리는이 응용 프로그램에 더 많은 기능을 추가해야합니다. 이를 위해 앱에 몇 가지 기능을 추가합니다. QThread 클래스 시작 함수의 내용은 코드로 변경되어 줄의 편집 필드에서 소스에서 일부 정보를 가져옵니다. 이 작업을 해결하려면 예를 들어, BeautifulSoup와 같은 추가 라이브러리가 필요합니다. pip를 사용하여 설치하십시오 – 존재하지 않는 경우: PyQt – 그래픽 사용자 인터페이스(GUI)를 사용하여 응용 프로그램을 만들기 위한 강력한 프레임워크입니다. 그러나 응용 프로그램의 속도는 어떨까요? 경량 문제가 있는 앱을 사용할 때는 발생하지 않지만 응용 프로그램의 크기와 기능에 따라 증가할 때 는 일반적으로 작업 속도가 느집니다. 이 문제에 대한 해결책은 응용 프로그램 작업을 여러 하위 작업으로 분할하거나 다중 처리를 사용하여 일부 하위 프로세스를 만들고 의사 독립적 인 스레드를 만들어 이러한 작업을 수행하는 것입니다.

이 모든 것은 파이썬 프로그래밍 언어의 표준 라이브러리에서 사용할 수 있습니다. 응용 프로그램과 해당 작업에 따라 이러한 도구의 구현에 대한 접근 방식이 다르며 문제 해결 방법은 응용 프로그램 구조에 따라 다릅니다. 예제를 완료하려면 코드 한 개만 더 필요합니다.