Zoals je al zei, is het moeilijk te voorspellen hoe lang een query duurt (vanwege de query zelf en zijn parameters, vanwege het netwerk, vanwege de serverbelasting).
Hoe dan ook, u moet de SQL-query's naar QThreads verplaatsen. Hierdoor kan uw toepassing de GUI bedienen terwijl de query's worden uitgevoerd.
Ik zou dit ook niet proberen op te lossen door time-outs. U zult veel problemen krijgen omdat u er niet in slaagt de juiste time-outs te kiezen voor elke vraag en elke situatie. Bied in plaats daarvan een manier om zoekopdrachten te annuleren met een knop of een dialoogvenster, zodat de gebruiker kan beslissen of het verstandig is om door te gaan met wachten of niet.