Tôi đang cố gắng tìm hiểu cách sử dụng QThreads trong ứng dụng PyQt Gui. Tôi có các công cụ chạy trong một thời gian, với (thường là các điểm mà tôi có thể cập nhật một Gui, nhưng tôi muốn chia công việc chính ra thành chủ đề riêng của mình (đôi khi mọi thứ bị kẹt, và sẽ rất tuyệt khi cuối cùng có một nút hủy/thử lại, điều này rõ ràng không hoạt động nếu Gui bị đóng băng vì vòng lặp chính bị chặn).Ví dụ về cách đúng để sử dụng QThread trong PyQt?
Tôi đã đọc https://mayaposch.wordpress.com/2011/11/01/how-to-really-truly-use-qthreads-the-full-explanation/. Trang đó nói rằng việc triển khai lại phương thức run
không phải là cách để thực hiện. Vấn đề tôi gặp phải là tìm một ví dụ PyQt có một luồng chính làm Gui và một chuỗi công nhân không thực hiện theo cách đó. Bài đăng trên blog là dành cho C++, vì vậy trong khi các ví dụ của chúng tôi trợ giúp, tôi vẫn bị mất một chút. Ai đó có thể xin vui lòng chỉ cho tôi một ví dụ về đúng cách để làm điều đó trong Python?
này trông giống như một dup của [thread nền với QThread trong PyQt] (http://stackoverflow.com/questions/6783194/background-thread-with-qthread-in-pyqt). Ví dụ thứ hai trong câu trả lời được chấp nhận trông giống như một bản dịch đơn giản của mã C++ từ blog bạn đã liên kết. – abarnert
Ngoài ra, bạn có viết bất kỳ đoạn mã nguồn gốc Python nào (với 'luồng.Thread', v.v.) không? Nếu không, bạn có thể muốn làm việc thông qua một số ví dụ về điều đó trước tiên. (Cũng xem [Threading trong một ứng dụng PyQt: Sử dụng các chủ đề Qt hoặc các chủ đề Python] (http://stackoverflow.com/questions/1595649/threading-in-a-pyqt-application-use-qt-threads-or-python- chủ đề) để xem liệu bạn có cần QThread ở đây không.) – abarnert
@abarnert Cảm ơn, tôi nghĩ rằng liên kết đó chỉ là những gì tôi đang tìm kiếm. Tôi đã nhìn thấy liên kết thứ hai, và quyết định rằng tôi nên sử dụng QThreads vì tôi muốn có thể gửi các khe/tín hiệu giữa các luồng. Tôi đã biết rằng 'threading.Thread' tồn tại, nhưng chưa từng sử dụng nó trước đây. Tôi đã làm rất nhiều tìm kiếm, và thậm chí nhìn thấy liên kết đầu tiên, lướt qua nó, thấy 'def run' và tiếp tục, không nhận ra được cả hai cách! – Azendale