すでに述べたように、クエリの実行時間を予測することは困難です(クエリ自体とそのパラメーター、ネットワーク、サーバーの負荷のため)。
とにかく、SQLクエリをQThreadsに移動する必要があります。これにより、クエリの実行中にアプリケーションがGUIを提供できなくなります。
また、タイムアウトによってこれを解決しようとはしません。各クエリおよび各状況に適切なタイムアウトを選択できないため、多くの問題が発生します。代わりに、ボタンまたはダイアログでクエリをキャンセルする方法を提供して、ユーザーが待機を継続するのが賢明かどうかを判断できるようにします。