【发布时间】:2021-08-11 13:50:44
【问题描述】:
我想在QTableView 中将QWidget 附加到QStandardItemModel
self.table = QTableView()
self.ui.scrollArea.setWidget(self.table) #Not important but I left it in in case it had something to do with this question
self.model = QStandardItemModel()
self.table.setSelectionMode(QAbstractItemView.ExtendedSelection)
self.table.setModel(self.model)
...
@Slot(None)
def OpenFile(self):
dialog = QFileDialog(self)
dialog.setFileMode(QFileDialog.ExistingFiles)
if dialog.exec():
filenames = dialog.selectedFiles()
for i in range(len(filenames)):
it = QStandardItem()
it.setText(filenames[i].split("/")[-1])
self.samplespinbox = QDoubleSpinBox()
self.formatdropdown = QComboBox()
samplespinboxholder = QStandardItem()
samplespinboxholder.setData(self.samplespinbox)
formatdropdownholder = QStandardItem()
formatdropdownholder.setData(self.samplespinbox)
self.model.appendRow((it ,samplespinboxholder, formatdropdownholder))
但是当我尝试这个时,行会出现,it 会显示,但我使用的小部件不会显示
【问题讨论】:
-
请注意,在循环中设置实例属性(例如,
self.samplespinbox = ...)完全没有意义。只需使用局部变量,就像您对it所做的那样。
标签: python qt qwidget qstandarditemmodel pyside6