как добавить элементы в Qcombobox с его уникальным идентификатором - PullRequest
0 голосов
/ 03 ноября 2018

Есть ли у вас идеи добавить элементы в Qcombobox?

как время, когда пользователь выбирает элемент, мы можем получить уникальные идентификаторы выбранного элемента?

предположим, что у нас есть:

=============
| ID | NAME |
=============
| 1  |   A  |
=============
| 2  |   B  |
=============
| 3  |   C  |
=============
| 4  |   D  |
=============

И мы хотим показать только столбец NAME в QCombobox, но когда один из элементов выбран, мы можем получить доступ к идентификатору выбранного элемента.

1 Ответ

0 голосов
/ 03 ноября 2018

Вам просто нужно использовать модель, установить идентификатор в одной из ролей и ИМЯ в другой, в следующей части я покажу пример:

from PyQt5 import QtCore, QtGui, QtWidgets


if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)


    data =  [(1, "A"), (2, "B"), (3, "C"), (4, "D")]
    model = QtGui.QStandardItemModel()
    for i, text in data:
        it = QtGui.QStandardItem(text)
        it.setData(i)
        model.appendRow(it)

    @QtCore.pyqtSlot(int)
    def on_currentIndexChanged(row):
        it = model.item(row)
        _id = it.data()
        name = it.text()
        print("selected name: ",name, ", id:", _id)

    w = QtWidgets.QComboBox()
    w.currentIndexChanged[int].connect(on_currentIndexChanged)
    w.setModel(model)
    w.show()
    sys.exit(app.exec_())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...