基本上,我在表格中有文字,我希望在GUI应用程序中显示为列表。
我有什么:
column1 | column2 | column3 |
-----------| -----------| ----------|
col1atext | col2atext | col3atext |
col1btext | col2btext | col3btext |
我需要什么:
col1atext #wrap to the next line
col2atext #wrap to the next line
col3atext
------------
col1btext #wrap to the next line
col2btext #wrap to the next line
col3btext
------------
我已经用尽了谷歌搜索,但没有找到任何这方面的例子。我看到的一切只允许列表中的一行文本,但我想显示一个列表列表(多行文本)。我可以创建一个单独的文本字符串,在单独的文本片段之间有足够的空格,以强制文本环绕几行,但这似乎不是一个真正的解决方案(下面的伪代码)。
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
import PCA_mod2ui #UI design file
class PCAmod2App(QtWidgets.QMainWindow, PCA_mod2ui.Ui_MainWindow):
def __init__(self, parent=None):
super(PCAmod2App, self).__init__(parent)
self.setupUi(self)
## below defined in PCA_mod2ui, converted from QT Designer
"""
self.projectListWidget = QtWidgets.QListWidget(self.centralwidget)
self.projectListWidget.setGeometry(QtCore.QRect(20, 10, 311, 531))
self.projectListWidget.setLineWidth(1)
self.projectListWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
self.projectListWidget.setAlternatingRowColors(True)
self.projectListWidget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
self.projectListWidget.setHorizontalScrollMode(QtWidgets.QAbstractItemView.ScrollPerItem)
self.projectListWidget.setProperty("isWrapping", True)
self.projectListWidget.setWordWrap(True)
self.projectListWidget.setSelectionRectVisible(True)
self.projectListWidget.setObjectName("projectListWidget")
"""
dpspace = ' '
spacer =95
datapoint1a='text1'
datapoint1b='text2'
datapoint1c='text3'
d1aspace = dpspace*(spacer-len(datapoint1a))
d1bspace = dpspace*(spacer-len(datapoint1b))
datapoint1 =datapoint1a+d1aspace+datapoint1b+d1bspace+datapoint1c
datapoint2a='2'+datapoint1a
datapoint2b='2'+datapoint1b
datapoint2c='2'+datapoint1c
d2aspace = dpspace*(spacer-len(datapoint2a))
d2bspace = dpspace*(spacer-len(datapoint2b))
datapoint2 =datapoint2a+d2aspace+datapoint2b+d2bspace+datapoint2c
datalist=[datapoint1,datapoint2]
self.projectListWidget.addItems(datalist)
def main():
app = QtWidgets.QApplication(sys.argv)
form = PCAmod2App()
form.show() #show the form
app.exec_() #execute the app
if __name__ == '__main__':
main()
有什么想法让这更好吗?
更新4/10/17:找到了question的解决方案。