QTableWidget mit ScrollBar

Alles rund um die Programmierung mit Qt
Antworten
GBunge
Beiträge: 30
Registriert: 26. Mai 2008 12:12

QTableWidget mit ScrollBar

Beitrag von GBunge »

Hallo,

für die Darstellung einer großen Anzahl Daten benutze ich
ein QTableWidget, bei dem die vertikale ScrollBar automatisch
auftaucht, wenn die Datenmenge die Größe des Frames übersteigt.
Um die Position der ScrollBar auszulesen, brauchte ich einen
Zeiger auf diese ScrollBar, damit ich ein Signal empfangen kann.

Mein Problem besteht nun darin, daß ich nicht weiß wie ich
an diesen Zeiger komme.
Gibt es eine Möglichkeit diesen Zeiger zu erhalten?

Gruss GBunge
sigvdr
Beiträge: 100
Registriert: 1. Juli 2008 19:29

Re: QTableWidget mit ScrollBar

Beitrag von sigvdr »

QScrollBar * horizontalScrollBar () const
QScrollBar * verticalScrollBar () const
GBunge
Beiträge: 30
Registriert: 26. Mai 2008 12:12

Re: QTableWidget mit ScrollBar

Beitrag von GBunge »

Das habe ich schon versucht.
Es funktioniert nicht!
Ich habe das Signal 'selectionChanged()' connected!
Aber es kommt keine Reaktion auf meinen Versuch ein Item auszuwählen.
Auszug aus meinem Code:

[color=#8000FF]
MyTable::MyTable(QWidget *p, QString s ) : QTableWidget(p)
{ ...
selMod = new QItemSelectionModel( model());
connect( selMod, SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
this,SLOT(selection(QItemSelection,QItemSelection)));
...
}

void MyTable::selection( QItemSelection a, QItemSelection b)
{
qDebug()<<a;
}
[/color]
sigvdr
Beiträge: 100
Registriert: 1. Juli 2008 19:29

Re: QTableWidget mit ScrollBar

Beitrag von sigvdr »

Oben frägst du nach ScrollBar und im 2. Post bringst du ein Beispiel mit QItemSelectionModel??

Wobei mir am Beispiel nichs falsches auffällt außer dass du mal testen kannst ob der Slot aufgerufen wird.

Code: Alles auswählen

qDebud() << a;
qDebug( "Slot geht");
zur Ergänzung noch den Hinweis:
If you include <QtDebug>, a more convenient syntax is also available:
Gruß Sig
sigvdr
Beiträge: 100
Registriert: 1. Juli 2008 19:29

Re: QTableWidget mit ScrollBar

Beitrag von sigvdr »

Erwartest du etwa, dass sich die Selection ändert, wenn du die Tabelle mit dem ScrollBar verschiebst?
Gruß Sig
GBunge
Beiträge: 30
Registriert: 26. Mai 2008 12:12

Re: QTableWidget mit ScrollBar

Beitrag von GBunge »

Hallo Sig,
die Verwechselung ist meine Schuld.
Im ersten Post spreche ich von der automatisch erscheinenden ScrollBar bei einer
größeren Menge Daten. Da diese ScrollBar automatisch erscheint, bekomme ich keinen
Zeiger auf sie.
Dein erster Hinweis
[quote="sigvdr"]
QScrollBar * horizontalScrollBar () const
QScrollBar * verticalScrollBar () const
[/quote]
war genau das, was ich auch als erstes versucht habe.

Dabei wurde die Verbindung zum SLOT aber nicht hergestellt.
Eine Ausgabe mit 'qDebug()<<"bin drin";' hatte keinen Erfolg.
Also dachte ich mir, versuch es mal mit einem
'QItemSelectionModel', weil das QItemSelectionModel
das erforderliche Signal zur Verfügung stellt.
Der Code den Du angesehen hast bezog sich genau auf diesen Versuch.

Nun, auch das hat nicht geklappt. Es kommt offensichtlich
kein Signal in meinem SLOT an.
Gruss GBunge
MichaelS
Beiträge: 240
Registriert: 27. Dezember 2005 12:49

Re: QTableWidget mit ScrollBar

Beitrag von MichaelS »

Was spricht gegen die von QTableWidget bereitgestellten Signale?

Code: Alles auswählen

void	itemSelectionChanged()

Code: Alles auswählen

void currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)

Code: Alles auswählen

void	currentItemChanged(QTableWidgetItem * current, QTableWidgetItem * previous)
Damit kannst Du Dir Deine ganzen Verrenkungen sparen.

Gruß Michael
GBunge
Beiträge: 30
Registriert: 26. Mai 2008 12:12

Re: QTableWidget mit ScrollBar

Beitrag von GBunge »

Hallo Michael,
leider helfen mir Deine Hinweise nicht weiter.
Ich muss mit einem QTableView und QStandardModel arbeiten.
Das TableView stellt diese Signale nicht zur Verfügung.
Gruß GBunge
Antworten