qt - 从 QVariant 到整数和字符串

标签 qt pyqt qtcore qvariant

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

QAbstractTableModelsetData() 方法始终将此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/

相关文章:

python - 使用 Python 中 QTextEdit 中的格式对齐文本

python - 在 Python 中播放 MMS 流

python - 从 pandas 中的列索引位置检索日期并粘贴到 PyQt 中

c++ - 解析jsonarray?

c++ - 有没有办法在qt中卸载eventfilter?

qt - 如何在 Qt 中检索堆栈跟踪或设备崩溃日志?

c++ - 是否可以创建和使用 MatIterator 数组?

c++ - Qt 中进程的有趣任务

c++ - 使用 QT Phonon 立即播放声音(不等待事件循环)

python - 将 qtreeview 项目设置为可通过上下文菜单编辑并自动将其设置回禁用状态?