1
私は、TreeViewに代理人を実装しようとしています。デリゲートはLINEEDITとボタンで構成されなければならない:createEditor機能でPyQtユーザー定義のウィジェットを持つ代理人
class Ui_Data_Delegate(QWidget):
def __init__(self, *args, **kwargs):
super(Ui_Data_Delegate, self).__init__(*args, **kwargs)
self.setGeometry(QRect(10, 10, 271, 61))
self.horizontalLayout = QHBoxLayout(self)
self.lineEdit = QLineEdit(self)
self.lineEdit.setObjectName("lineEdit")
self.horizontalLayout.addWidget(self.lineEdit)
self.ToolButton = QToolButton(self)
self.ToolButton.setObjectName("ToolButton")
self.horizontalLayout.addWidget(self.ToolButton)
を私はUi_Data_Delegateクラスを呼び出す:
def createEditor(self, parent, option, index):
if type == UDF.DT_ResultsSelector:
editor = Ui_Data_Delegate(parent)
editor.ToolButton.released.connect(self.make_selection)
return editor
else:
return QStyledItemDelegate.createEditor(self, parent, option, index)
しかし、その後、私はツリービューで任意のエディタが表示されません。
を
私は親パラメータミスをすれば:
def createEditor(self, parent, option, index):
if type == UDF.DT_ResultsSelector:
editor = Ui_Data_Delegate()
editor.ToolButton.released.connect(self.make_selection)
return editor
else:
return QStyledItemDelegate.createEditor(self, parent, option, index)
を210
私が手:
これはほぼ正しいが、ウィジェットがツリービューのセルに表示されます!
私は間違っていますか?