用户输入的内容value
可以是:字符串或整数。
QAbstractTableModel
的setData()
方法总是将此value
作为QtCore.QVariant
问题:
如何实现if/elif/else
内部setData()
区分接收到的QVariant
是字符串还是整数?(因此使用了正确的QVariant
转换方法(例如.toString()或toInt()))
Ps有趣的是,尝试将其转换为QVariant
Int()会生成一个元组,例如:(0, False)
或(123, True)
if myVariant.type() == QVariant.Int:
value = myVariant.toInt()
elif myVariant.type() == QVariant.QString:
value = myVariant.toString()
鉴于上面的表格现在已过时,建议通过以下方式进行检查:
if myVariant.canConvert(QMetaType.Int):
value = myVariant.toInt()
elif myVariant.canConvert(QMetaType.QString)
value = myVariant.toString()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句