2

Qt (PySide/PyQt - 問題ではない) を使用して Python でリストのテーブルを作成しようとしていますが、リストがテーブルのセルに押しつぶされています。

リストデリゲートをセルから「ポップアウト」させる方法はありますか? 簡単なコード スニペットを添付しました -好み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_())
4

1 に答える 1

2

したがって、答えは使用することです

QComboBox

それよりも

QListWidget

したがって、6行目は次のようになります

editor = QtGui.QComboBox(parent)

そして、すべてが世界で正しいです。これが誰かに役立つことを願っています...

于 2011-02-01T01:18:59.567 に答える