alp*_*ric 5 python qt pyqt qvariant qtcore
输入的用户value可以是:字符串或整数.
QAbstractTableModel的setData()方法总是得到这个value作为QtCore.QVariant
问题:
如何实现if/elif/else内部setData()区分是收到的QVariant是字符串还是整数?(因此使用了正确的QVariant转换方法(例如.toString()或toInt()))
Ps有趣的是,尝试将QVarianttoInt()转换为元组,例如:(0, False)或(123, True)
if myVariant.type() == QVariant.Int:
value = myVariant.toInt()
elif myVariant.type() == QVariant.QString:
value = myVariant.toString()
Run Code Online (Sandbox Code Playgroud)
鉴于上面的表格现已过时,建议以这种方式检查:
if myVariant.canConvert(QMetaType.Int):
value = myVariant.toInt()
elif myVariant.canConvert(QMetaType.QString)
value = myVariant.toString()
Run Code Online (Sandbox Code Playgroud)