Use QTimer to run instead of thread