QTableWidget mit ScrollBar
QTableWidget mit ScrollBar
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
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
Re: QTableWidget mit ScrollBar
QScrollBar * horizontalScrollBar () const
QScrollBar * verticalScrollBar () const
QScrollBar * verticalScrollBar () const
Re: QTableWidget mit ScrollBar
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]
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]
Re: QTableWidget mit ScrollBar
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.
zur Ergänzung noch den Hinweis:
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");
Gruß SigIf you include <QtDebug>, a more convenient syntax is also available:
Re: QTableWidget mit ScrollBar
Erwartest du etwa, dass sich die Selection ändert, wenn du die Tabelle mit dem ScrollBar verschiebst?
Gruß Sig
Gruß Sig
Re: QTableWidget mit ScrollBar
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
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
Re: QTableWidget mit ScrollBar
Was spricht gegen die von QTableWidget bereitgestellten Signale?
Damit kannst Du Dir Deine ganzen Verrenkungen sparen.
Gruß Michael
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)
Gruß Michael
Re: QTableWidget mit ScrollBar
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
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