Pyqt5 QStandarditemModel получить индекс предмета - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть QStandarditemModel в виде таблицы, как просто показано ниже:

model = QStandardItemModel(0, 4)
table = QTableView()
table.setModel(self.model)

Затем я добавляю q QCombobox в строку

x2 = QComboBox()
tabel.setIndexWidget(model.index(1, 1), x2)

Я пытаюсь получить строку указатель предмета (Combobox). Я пытался использовать

item = sender()
tabel.Indexof(item)

Есть ли способ получить индекс строки при выборе этого QComboBox

1 Ответ

0 голосов
/ 18 апреля 2020

Чтобы получить строку, существует несколько методологий:

  • Использование словаря: сопоставьте виджеты в словаре, чтобы связать ключ с виджетом и значение со строкой (и / или столбцом) :
self.d = dict()
x2 = QComboBox()
tabel.setIndexWidget(model.index(1, 1), x2)
self.d[x2] = (row, column)
o = sender()
pos = self.d.get(o)
if pos is not None:
    row, col = pos
    print(row)
  • Использовать геометрию:
o = sender()
if isinstance(o, QWidget):
   ix = tabel.indexAt(o.pos())
   print(ix.row())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...