【问题标题】:From QVariant to Integer and String从 QVariant 到 Integer 和 String
【发布时间】:2015-02-22 22:51:33
【问题描述】:

用户输入的value既可以是字符串也可以是整数。

QAbstractTableModelsetData() 方法总是把这个value 当作QtCore.QVariant 得到

问题

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

附:有趣的是,尝试将 QVariant toInt() 转换为元组,例如:(0, False)(123, True)

【问题讨论】:

    标签: c++ qt pyqt qtcore qvariant


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-05-05
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 2019-12-24
      相关资源
      最近更新 更多