Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Bug:Debug didn't work in Qthread

Ouverte
#697 6 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
25/100
Type d'issue
Bug
Clarté
À clarifier
Activité
À l'abandon
Stack technique
python
Domaine
devtools

Piste de recherche

Commencez par reproduire le rapport avec les exemples fournis main.py et sub_thread.py, en plaçant un point d’arrêt dans WorkerThread.run. Examinez ensuite la gestion des threads du débogueur ainsi que les tests existants pour la prise en charge de PySide6 ou de QThread. Le travail est considéré comme terminé lorsque le point d’arrêt dans le thread de travail est atteint au cours d’une session de débogage VS Code.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

feature-request needs community feedback
Description:

When I use Qt for Pyside6, I open a Qthread sub thread in the main thread and add a breakpoint inside the sub thread, but Python debugger does not enter the sub thread,it just didn't work

Origin Code:
main.py:

import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QTextEdit, QVBoxLayout, QWidget
from PySide6.QtCore import Qt
from worker_thread import WorkerThread

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QThread Debug Test")
        self.setGeometry(100, 100, 400, 300)
        
        # 创建中央部件和布局
        central_widget = QWidget()
        self.setCentralWidget(central_widget)
        layout = QVBoxLayout(central_widget)
        
        # 创建按钮
        self.start_button = QPushButton("Start Thread")
        self.start_button.clicked.connect(self.start_thread)
        layout.addWidget(self.start_button)
        
        # 创建文本显示区域
        self.text_edit = QTextEdit()
        self.text_edit.setReadOnly(True)
        layout.addWidget(self.text_edit)
        
        # 创建工作线程
        self.worker_thread = None
    
    def start_thread(self):
        if self.worker_thread is None or not self.worker_thread.isRunning():
            self.worker_thread = WorkerThread()
            self.worker_thread.message_signal.connect(self.update_text)
            self.worker_thread.start()
            self.text_edit.append("Thread started...")
    
    def update_text(self, message):
        self.text_edit.append(message)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec()) 

sub_thread.py:

from PySide6.QtCore import QThread, Signal
import time

class WorkerThread(QThread):
    message_signal = Signal(str)
    
    def __init__(self):
        super().__init__()
        self.running = True
    
    def run(self):
        count = 0
        while self.running and count < 10:
            count += 1
            self.message_signal.emit(f"Count: {count}")
            time.sleep(1)  # 模拟耗时操作
        
        self.message_signal.emit("Thread finished!")
    
    def stop(self):
        self.running = False 

Where is the sub-thread?

Image

Where is the breakpoint?

Image

What's the Performance?
Set the breakpoint and push the button,then you'll find that Python Debugger didn't work in the workthread(sub-thread)!

Image

Image

Langage dominant
TypeScript
Étoiles
181
Forks
126
Merge moyen
8 h 49 min
PR mergées (30 j)
1

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de microsoft/vscode-python-debugger

Toutes les issues de microsoft/vscode-python-debugger

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.