我正在使用python插件。我有字段变量= “t_0”。“调查”我只想存储调查另一个变量。用于从“t_0”获得调查的功能。“调查”?
当我尝试打印 a 时,我尝试了a=field.split(".")
,它给出了
<PyQt4.QtCore.QStringList object at 0x01247228>
是否有删除功能或找到“。”的位置。从字符串..?
如果我尝试 lstrip()或 ljust(),则会出错
AttributeError: 'QString' object has no attribute 'lstrip'..
答案 0 :(得分:3)
如果a
是QString
,则调用a.split
会生成QStringList
,就像在split
上调用str
一样list
:
>>> qstr = QString("t_0.survey")
>>> slist = qstr.split(".")
>>> slist
<PyQt4.QtCore.QStringList object at 0x00BBCD88>
您可以将QStringList
转换为Python列表:
>>> list(slist)
[PyQt4.QtCore.QString(u't_0'), PyQt4.QtCore.QString(u'survey')]
或者只提取第二个元素:
>>> slist[1]
PyQt4.QtCore.QString(u'survey')
也许摆脱QString
包装:
>>> unicode(slist[1])
u'survey'
答案 1 :(得分:1)
如果您的field
变量的类型为QString
,则以下代码适用于我。
QString str = "a,b,c";
QStringList list1 = str.split(",");
输出= [ "a","b", "c" ]
尝试在python解释器中执行type(field)
并向我们显示输出。
或者将变量类型转换为str
,如a=str(field).split(".")
答案 2 :(得分:0)
似乎'a'不是真正的String,而是PyQt库生成的其他一些对象(可能是输入字段?)。如果你能找到一种方法从这个字段中获取一个真正的字符串(a.value(),a.text()或类似的东西),你应该可以使用split。