В соседней ветке похожая тема:
http://python.su/forum/topic/22444/ — последним постом связь QComboBox с QTreeView. Практически, можно сделать любую связку:
1. Создаете модель, наследуя от QAbstractTableModel или заполняете вручную, в цикле, QStandardItemModel, где у Вас будут 2 колонки: с чекбоксом и текстом.
2. Переписываете пример из соседнего поста под тот же QTreeView, но без дерева
3. В перехвате обработчика проверяете index.column() == 0 (CheckBox) и в этом случае список не закрываете.
4. Значение получаете обычным способом, из модели: QComboBox дает выбранную строку: row = self.currentIndex(), получаете из этого индекс уже модели model().index(row, 0, QModelIndex()), ну а далее обычным способом значение (или model().data(index, Qt.CheckStateRole), или item.isChecked()).
Это решение в лоб пришло по “горячим следам”.