PySide / PyQt QStyledItemDelegate 表中的列表
Posted
技术标签:
【中文标题】PySide / PyQt QStyledItemDelegate 表中的列表【英文标题】:PySide / PyQt QStyledItemDelegate list in table 【发布时间】:2011-01-31 23:23:21 【问题描述】:我正在尝试使用 Qt(PySide/PyQt - 无关紧要)在 Python 中创建一个列表表,并且我的列表被压缩到表格单元格中。
有没有办法让列表代表“弹出”他们的单元格?我附上了一个简单的代码 sn-p - 根据您的喜好将 PySide
替换为 PyQt4
from PySide import QtCore, QtGui
class ListDelegate(QtGui.QStyledItemDelegate):
def createEditor(self, parent, option, index):
editor = QtGui.QListWidget(parent)
for i in range(12):
editor.addItem('list item %d' % i)
return editor
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
model = QtGui.QStandardItemModel(2, 2)
tableView = QtGui.QTableView()
delegate = ListDelegate()
tableView.setItemDelegate(delegate)
tableView.setModel(model)
for row in range(2):
for column in range(2):
item = QtGui.QStandardItem( 'None' )
model.setItem(row, column, item)
tableView.setWindowTitle('example')
tableView.show()
sys.exit(app.exec_())
【问题讨论】:
【参考方案1】:所以答案是使用
QComboBox
而不是
QListWidget
所以第 6 行变成了
editor = QtGui.QComboBox(parent)
世界上一切都很好。希望这对某人有所帮助...
【讨论】:
以上是关于PySide / PyQt QStyledItemDelegate 表中的列表的主要内容,如果未能解决你的问题,请参考以下文章
PySide/PyQt:PointingHandCursor 食谱?
PySide / PyQt QStyledItemDelegate 表中的列表
PySide/pyQt 在 QTableView 中显示数据
将 vtkOrientationMarkerWidget 与 QVTKRenderWindowInteractor 一起使用 [PyQt4/PySide]