Ok - I've cleaned up my code as per all the help above. And, I added a slot for the 'destroyed' signal from the QThread, AND, and I added a qDebug statement into the thread's DTOR, and I delete the QThread immediately (not deleteLater). So, I can confirm that the DTOR is running, and I can confirm from the slot that the QThread is destroyed.
However...valgrind is STILL reporting memory as lost on the line where I create a new QThread:
m_myThread = new QThread(this);
I'm left scratching my head. I assume that this is a valgrind - Qt issue. Unfortunately this is already a pretty big program so I can't post it, and I'm sure a MRE will work fine. (I've used QThreads in my other programs without memory loss). Does anyone have an idea what might be causing this?
I'm hesitant to open a bug report since this seems odd, and I can't produce an MRE. Hmmmm
I use smc-check=all in valgrind, for heap and stack, because of my QRegularExpression use. Could that be confusing valgrind?