Hi and welcome to devnet,
Without diving too deep in your code, the first thing that comes to mind is: don't manipulate a GUI element outside of the GUI thread.
And it should rather be the other way around, make your thread class emit a new value and connect the GUI to that signal. This way you'll avoid a needless tight dependency and make your your code cleaner to maintain.