카메라에서 이미지를 수집하기 위해 부스트 스레드를 사용하고 새 이미지가 도착할 때마다 Qt 신호를 호출합니다. 이제이 신호가 나올 때 연결 슬롯 실행을 통해 위젯을 업데이트합니다. 내 슬롯에는 컨트롤이 있지만 디버깅을 위해 콘솔에 출력하는 동안 위젯은 업데이트되지 않습니다. 내 질문은이 슬롯이 주 스레드 또는 신호를 방출하는 스레드에서 실행되는지 여부와 원하는 업데이트를 달성하는 방법입니다. 감사합니다.부스트 스레드가있는 Qt 업데이트 GUI
답변
슬롯은 Qt 위젯을 만든 모든 스레드에서 실행됩니다. Qt는 크로스 스레드 신호와 슬롯에서 QueuedConnection을 사용합니다.
편집 :이 유용 할 수 있습니다 signal qt from a non-qt thread, QueuedConnection
당신은 메인 스레드를 차단하고 있습니까?
아니요 주 스레드는 없습니다 루틴에서 실행. 주된 문제는 메인 (GUI) 스레드가 페인팅 및 업데이트 작업을 담당하고 SLOT이 메인 스레드에서 정의 되었기 때문에 여전히 업데이트 할 수없는 이유입니다. 나는 SLOt가 신호 방사 스레드에 의해 실행된다는 것을 의미하는 SLOT에서 GUI와 관련된 것을 제외하고는 다른 작업을 수행 할 수 있습니다. (내가 틀렸다면 나에게 올바른)이 문제에 대해 무엇을 제안 할 수 있습니까? –
연결을 강제로 시도하지 않고 Qt :: QueuedConnection을 사용하도록 결정 했습니까? 제가 본 것에 대한 토론 중 일부는 이것이 필요하다고 말했습니다. 내가 부스트 스레드에서 신호를 방출하려고 시도하지 않았으므로 필요한지 확실하지 않습니다. 이전 응용 프로그램에서이 작업을 수행 한 이후 QThread에서이 작업이 필요하지 않다는 것을 알고 있습니다. – drescherjm
예. 또한 시도했지만 QThread로 부스트에서 내 응용 프로그램을 변경할 수 있습니다. –
- 1. 스레드가있는 부스트 파이썬
- 2. QT 위젯과 QT GUI
- 3. 다중 GUI 스레드가있는 mdi 응용 프로그램
- 4. Qt GUI 코드를 C#
- 5. qt GUI 연결
- 6. 의 Qt GUI
- 7. Qt 용 GUI 디자이너
- 8. 스레드가있는 하위 항목에서 부모 양식 업데이트
- 9. QT + 부스트 스레드가 작동하지 않습니다.
- 10. qt 대신 부스트 신호를 사용합니다.
- 11. Qt 네트워크 업데이트 후 업데이트
- 12. 부스트 및 Qt 신호 함께 사용
- 13. Qt Gui 응용 프로그램 배포
- 14. Qt gui 내 플롯 삽입하기
- 15. 스크립트를위한 Qt 기반 GUI 생성
- 16. 안드로이드에있는 Qt 또는 GUI의 GUI
- 17. Qt 커스텀 다이얼로그로 GUI 프로그래밍
- 18. Qt GUI 내부 - 위젯 페인팅?
- 19. 프로그래밍 방식으로 Qt GUI 디자인
- 20. QT : QPixmap을 사용하여 QLabel로 이미지 업데이트
- 21. DLL에서 WPF GUI 업데이트
- 22. GUI 업데이트 동기화 문제
- 23. BackgroundWorker를 사용하여 GUI 업데이트
- 24. 런타임시 Android GUI 업데이트
- 25. gui 업데이트 안 함
- 26. runnable에서 GUI 업데이트
- 27. 스레드가있는 progressbar보기
- 28. "실시간"Qt TextView 업데이트
- 29. DLL (QST 플러그인)의 Qt GUI 환경
- 30. Qt 4 GUI 응용 프로그램 GUI 스레드가 QNetworkRequests에서 느려짐
부스트를 사용하지는 않았지만, Qt는 스레드를위한 정말로 깨끗하고 간단한 인터페이스를 가지고 있습니다. [QThread] (http://doc.qt.nokia.com/4.7-snapshot/qthread.html) –