7

用户输入的value内容可以是:字符串或整数。

QAbstractTableModelsetData()方法总是得到value这个QtCore.QVariant

问题

如何实现if/elif/elseinside ofsetData()来区分接收到QVariant的是字符串还是整数?(因此使用了适当的QVariant转换方法(例如 .toString() 或 toInt()))

Ps 有趣的是,尝试将QVarianttoInt() 转换为元组,例如:(0, False)(123, True)

4

1 回答 1

12

您可以检查类型

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()
于 2014-12-25T00:48:22.277 回答