QT QItemSelectionModel para ignorar columnas?

Estoy tratando de restringir la selección de un árbol a una columna en particular.

Estoy usando delegados para crear comportamientos personalizados por elemento, por columna, editores, etc. Esperaba poder hacerlo de un delegado bloqueando un evento o algo similar. El problema es que creo que tendría que crear una solución totalmente personalizada que imite la selección extendida.

Sin embargo, después de una gran cantidad de búsquedas y muy pocos ejemplos, parece que quiero un QItemSelectionModel personalizado en mi vista de árbol. ¿Es esta suposición correcta?

¿Cómo creo un QItemSelectionModel personalizado que usará el Modo de selección extendida pero me permite ignorar o revertir una selección si no está en una columna en particular? En otras palabras, hacer clic en otra columna no debería cambiar la selección (no debería seleccionar o deseleccionar)

Sé cómo agregar el modelo de selección una vez que lo tengo. Solicito ayuda para implementar la clase derivada (a menos que esto pueda hacerse con una señal conectada).

Estoy usando Python, pero valoraría cualquier ayuda.

Gracias,

[EDIT:] Encontré estas preguntas similares:http://lists.qt.nokia.com/pipermail/qt-interest/2010-September/027647.html

"Subclase QItemSelectionModel y vuelva a implementar ambos métodos de selección para tener el comportamiento que desea. Simplemente ignore las partes de los rangos con la columna> 0 ... O tal vez simplemente vuelva a implementar las banderas () para que el elemento no sea seleccionable. No sé si eso tendrá algún efecto secundario ".

Intenté reimplementar indicadores en mi QTreeWidgetItem, pero nunca me llamaron:

def flags(self, index):
    print index.column()
    return super(DDOutlinerBaseItem, self).flags(index)

Respuestas a la pregunta(2)

Su respuesta a la pregunta