QListView, fehlende Signale?

Alles rund um die Programmierung mit Qt
Antworten
qtjogi
Beiträge: 2
Registriert: 19. Juni 2008 15:58

QListView, fehlende Signale?

Beitrag von qtjogi »

Hallo zusammen,
habe ein Fibu Programm mit einer Kontenauswahl im rechten Teil des Bildschirms, für die QListView verwendet wurde.
Jedes Mal, wenn auf ein Konto dieser Liste geklickt wird, passiert in den anderen Fenstern irgendetwas (Konto darstellen, Kontonummer eintragen usw.).
Das habe ich mit

kontenplanV = new QListView( this );
kontenplanV->setFont( courierFont );
kontenplanV->setAlternatingRowColors ( true );
kontenplanV->setEditTriggers ( QAbstractItemView::NoEditTriggers );
kontenplanV->setGeometry(x(1024-310),y(30),x(300),y(690));
connect( kontenplanV, SIGNAL( customContextMenuRequested ( QPoint ) ), this, SLOT( menuListeKonten() ) );
connect( kontenplanV, SIGNAL( clicked ( const QModelIndex & ) ), this, SLOT( zeigeKontoblatt( const QModelIndex & ) ) );
kontenplanV->setContextMenuPolicy ( Qt::CustomContextMenu );

erfolgreich realisiert.
Beim Mausklick aufein Konto wird dieses blau markiert und das Signal wird erfolgreich weitergeben (s.o.).
Ich möchte aber nun, dass auch beim Wechsel der Markierung mittels Pfeiltasten für das gerade markierte Konto ebenso ein Signal ausgegeben wird.
Ich hatte vorher ein QTableWidget genommen, dort konnte man das mit currentCellChanged einfach realisieren.
Geht das mit QListView nicht mehr? Muss man dafür nachträglich ein Signal einbauen? Es gibt dort einen currentChanged ( const QModelIndex &, const QModelIndex & ), dies ist aber ein slot.
Vielen Dank für hilfreiche Hinweise.
Sephral
Beiträge: 201
Registriert: 1. Februar 2006 09:40
Kontaktdaten:

Re: QListView, fehlende Signale?

Beitrag von Sephral »

qtjogi hat geschrieben:Es gibt dort einen currentChanged ( const QModelIndex &, const QModelIndex & ), dies ist aber ein slot.
Vielen Dank für hilfreiche Hinweise.
Einfach eine eigene Klasse von QListView ableiten, den Slot überschreiben und ein eigenes Signal rausschicken.

Ciao,
Sephral
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich würds mal mit diesem Signal probieren:

Code: Alles auswählen

void QItemSelectionModel::currentChanged ( const QModelIndex & current, const QModelIndex & previous ) 
qtjogi
Beiträge: 2
Registriert: 19. Juni 2008 15:58

QListView, fehlende Signale

Beitrag von qtjogi »

Ich habs schon vermutet, dass man das Signal in einer abgeleiteten Klasse hinzufügen muss. Mit currentChanged ( const QModelIndex & current, const QModelIndex & previous ) müsste ich das Programm in weiten Teilen neu schreiben, da lt. Hinweis aus dem QT-Assistant:

If you need a model to use with a QListView or a QTableView, you should consider subclassing QAbstractListModel or QAbstractTableModel instead of this class.

ich für das Modell die Klasse QAbstractListModel genommen habe, die ein solches Signal nicht enthält.

Vielen Dank für eure Hinweise.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du mußt kein Signal hinzufügen und nichts ableiten, es ist alles schon vorhanden...
Antworten