A concrete alternative that creates no dependency specifically on BTC addresses would be to adapt BitcoinAddressValidator's validate() function to return QValidator::Acceptable only on a valid bitcoin address.

Then change this code that if a validator() is set, setValid() here based on hasAcceptableInput().