【问题标题】:PySide / PyQt QStyledItemDelegate list in tablePySide / PyQt QStyledItemDelegate 表中的列表
【发布时间】: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_())

【问题讨论】:

    标签: python pyqt pyside


    【解决方案1】:

    所以答案是使用

    QComboBox
    

    而不是

    QListWidget
    

    所以第 6 行变成了

    editor = QtGui.QComboBox(parent)
    

    世界上一切都很好。希望这对某人有所帮助...

    【讨论】:

      猜你喜欢
      • 2016-01-01
      • 2016-01-30
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 2012-09-24
      • 1970-01-01
      • 2012-07-13
      相关资源
      最近更新 更多