Hallo!
Ich habe ein QTableView (Qt 4.2.1), für das ich dynamische Tooltips anzeigen möchte, deren Inhalt u.a. davon abhängt, über welcher Zelle der Mauszeiger steht.
Ich habe dazu für die TableView einen Event Filter installiert, der alle Tooltip-Events abfängt und dann mittels
QHelpEvent* helpEvt = static_cast<QHelpEvent*>(event);
emit ShowToolTip( helpEvt->pos(), helpEvt->globalPos() );
ein Signal rausgibt, bei welcher Position bzgl. der TableView bzw. bei welcher globalen Position das Event ausgelöst wurde.
In einer anderen Klasse fange ich das Signal auf und besorge mir mittels
QModelIndex index = myTableView->indexAt(position)
einen Modelindex, um die Informationen zu der unter dem Mauszeiger liegenden Zelle vom Model abfragen zu können. Das Problem ist, daß dieser Index immer "eine Zeile daneben zeigt" - also immer auf die Zelle eine Reihe unterhalb des Mauszeigers - und daß ich für die unterste Zeile der TableView überhaupt keine gültigen Model-Indices bekomme.
Kennt jemand dieses Phänomen und kann mir weiterhelfen?
Danke
Shaka
Problem mit QTableView und IndexAt()
Falsche Position
Die Position ist wohl vom ganzen WIdget, wenn ich die Doku richtig verstehe... Das ist wohl das Problem. Mal schauen, wie ich da drumrum komme.
Danke
Shaka
P.S: Leider habe ich im Model nicht alle Informationen zur Verfügung, die ich im Tooltip anzeigen will, drum muß ich es quasi "von außerhalb" machen.
Danke
Shaka
P.S: Leider habe ich im Model nicht alle Informationen zur Verfügung, die ich im Tooltip anzeigen will, drum muß ich es quasi "von außerhalb" machen.