用户输入的value
可以是:字符串或整数。
QAbstractTableModel
的{{1}}方法始终将此setData()
作为value
问题:
如何在QtCore.QVariant
内部实现if/elif/else
来区分收到的setData()
是字符串还是整数? (因此使用了正确的QVariant
转换方法(例如.toString()或toInt())。
P.S。有趣的是,尝试将QVariant
toInt()转换为元组,例如:QVariant
或(0, False)
答案 0 :(得分:6)
You can check against the type:
if myVariant.type() == QVariant.Int:
value = myVariant.toInt()
elif myVariant.type() == QVariant.QString:
value = myVariant.toString()
鉴于上述表格现已过时,建议to check it this way:
if myVariant.canConvert(QMetaType.Int):
value = myVariant.toInt()
elif myVariant.canConvert(QMetaType.QString)
value = myVariant.toString()