从QVariant到整数和字符串

字母数字

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

QAbstractTableModelsetData()方法总是将此value作为QtCore.QVariant

问题

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

Ps有趣的是,尝试将其转换为QVariantInt()会生成一个元组,例如:(0, False)(123, True)

lpapp

您可以检查类型

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章