用户输入的值
可以是:字符串或整数。
QAbstractTableModel
的setData()
方法始终将此value
作为QtCore.QVariant
问题:
如何在setData()
中实现if/elif/else
来区分接收到的QVariant
是字符串还是整数? (因此使用了适当的 QVariant
转换方法(例如 .toString() 或 toInt()))
附言有趣的是,尝试将 QVariant
转换为 Int() 结果为元组,例如:(0, False)
或 (123, True)
最佳答案
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()
关于qt - 从 QVariant 到整数和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27643350/