Figured out why PyQt multi-threading wasn't working, includes test code.