在 PyQt 中将 QstringList 转换为 Qstring
Convert QstringList to Qstring in PyQt
我正在尝试使用 QFileDialog 获取文件名列表,并希望在 QLineEdit 中显示(在 Python 2.7 中)。
self.resLine = QLineEdit()
xxres_file = (QFileDialog.getOpenFileNames(self, 'Select File', '', '*.txt'))
self.resLine.setText(xxres_file)
它期望(如错误所说)一个 QString:
TypeError: QLineEdit.setText(QString): argument 1 has unexpected type 'QStringList'
谁能帮我把 QStringList 转换成 QString。
提前致谢
您想要的值是 QStringList
中的字符串而不是列表本身
您可以使用 QStringList.join 方法将列表中的元素连接在一起,然后对其调用 split 以获得原生 python 列表
strlist = xxres_file.join(",") # this returns a string of all the elements in the QStringList separated by comma's
strlist = strlist.split(",") # you can optionally split the string to get all the elements in a python list
self.resLine.setText(strlist[0]) # your list contains only one string in this case
在python 3中QStringList
和QString
分别映射到原生python列表和字符串。
假设您使用的是最新版本的 pyqt,您还可以告诉 pyqt 使用较新的 api for qstrings
import sip
sip.setapi('QString', 2)
# Do pyqt imports afterwards
from PyQt4 import QtCore, QtGui
那么您只需使用常规 str
和 list
方法即可。
我正在尝试使用 QFileDialog 获取文件名列表,并希望在 QLineEdit 中显示(在 Python 2.7 中)。
self.resLine = QLineEdit()
xxres_file = (QFileDialog.getOpenFileNames(self, 'Select File', '', '*.txt'))
self.resLine.setText(xxres_file)
它期望(如错误所说)一个 QString:
TypeError: QLineEdit.setText(QString): argument 1 has unexpected type 'QStringList'
谁能帮我把 QStringList 转换成 QString。
提前致谢
您想要的值是 QStringList
中的字符串而不是列表本身
您可以使用 QStringList.join 方法将列表中的元素连接在一起,然后对其调用 split 以获得原生 python 列表
strlist = xxres_file.join(",") # this returns a string of all the elements in the QStringList separated by comma's
strlist = strlist.split(",") # you can optionally split the string to get all the elements in a python list
self.resLine.setText(strlist[0]) # your list contains only one string in this case
在python 3中QStringList
和QString
分别映射到原生python列表和字符串。
假设您使用的是最新版本的 pyqt,您还可以告诉 pyqt 使用较新的 api for qstrings
import sip
sip.setapi('QString', 2)
# Do pyqt imports afterwards
from PyQt4 import QtCore, QtGui
那么您只需使用常规 str
和 list
方法即可。