2016-04-15 7 views
5

क्यूटी फ्रेमवर्क के QVariant प्रकार तुलना ऑपरेटरों <, <=, >, >= प्रदान करता है, लेकिन वे पर हस्ताक्षर किए/अहस्ताक्षरित पूर्णांक तर्क बेमेल पर अप्रत्याशित काम:QVariant पर हस्ताक्षर किए/अहस्ताक्षरित तुलना

QVariant(-1) < QVariant(0u) yields false 
QVariant(0u) > QVariant(-1) yields false 

अगर यह एक बग है किसी को भी पता है, या है इसका इरादा है? क्या यह ऑपरेटर हमेशा गाए गए/हस्ताक्षरित मेलसमूह पर झूठी वापसी करते हैं?

Btw, मैं क्यूटी 5,6

उत्तर

3

QVariant(-1) < QVariant(0u) उपयोग कर रहा हूँ कॉल करेंगे निर्मित int और unsigned int की तुलनाकारक। असल में, (int(-1) < uint(0)) == false (और here यह समझाया गया है क्यों)। QVariant(-1).toInt() < QVariant(0u).toInt() == true

:

आप अलग व्यवहार चाहते हैं, मानों तुलना से पहले स्पष्ट रूप से toInt() या इसी तरह के तरीकों के साथ परिवर्तित

संबंधित मुद्दे