从QVariant到Integer和String

时间:2014-12-25 00:33:38

标签: python qt pyqt qtcore qvariant

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

QAbstractTableModel的{​​{1}}方法始终将此setData()作为value

问题

如何在QtCore.QVariant内部实现if/elif/else来区分收到的setData()是字符串还是整数? (因此使用了正确的QVariant转换方法(例如.toString()或toInt())。

P.S。有趣的是,尝试将QVariant toInt()转换为元组,例如:QVariant(0, False)

1 个答案:

答案 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()