refactor QButton.as