From 2ded8c2f1b9cc887baa255911ec69f1aa900a3bd Mon Sep 17 00:00:00 2001 From: taynpg Date: Fri, 3 Apr 2026 17:28:40 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Languages/cpp/关于Qt的问题.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 Languages/cpp/关于Qt的问题.txt diff --git a/Languages/cpp/关于Qt的问题.txt b/Languages/cpp/关于Qt的问题.txt new file mode 100644 index 0000000..f3b9c09 --- /dev/null +++ b/Languages/cpp/关于Qt的问题.txt @@ -0,0 +1,13 @@ +1.关于Qt的线程,子线程与父线程的关系。 +关键点: +(1)假如一个对象A,一个对象b = B(A* a); +把A对象在B构造时传入,B后续线程开启后(注意这里,开启B的线程前A都属于构造B的线程), +开启B线程前,你是没办法把A移动到B所属线程的, +也就是 +A* a; +workTh = new QThread(); +b = B(a); +b->moveToThread(workTh); +a->moveToThread(workTh); +workTh->start(); 看上去是移动了,实际没有。 +因为workTh->start()之前B线程都没开启,此时不存在B线程,无从谈起moveToThread到B线程。 \ No newline at end of file