I just figure out what happened.
The problem is in url.

I don't know how to explain correctly it, but I think QNetworkAccessManager has auto url encode function.

for example if my signature contain "+" and I encode it with toPercentEncoding() it will become "%2B",
When I call get(), it will be encoded again automatically by QNetworkAccessManager and become "%252B".
And that's why it gave "oauth_problem=signature_invalid".

So, I don't need to encode my url and this problem was solved and closed.