I like the overall idea, but putting this code in ValidatedLineEdit is wrong. This needs to be in a separate policy object instead that does the validation.
I suppose putting it in BitcoinAddressValidator would make sense in this case.