PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : eine Frage zu QTables (QT3)



TheDodger
20-02-2002, 13:01
Ich versuche gerade krampfhaft mich mit QTable zu beschäftigen.
Ich muß innerhalb einer Table eine neue Row hinzufügen ... einfach, und die danach auswählen, was nicht funktioniert.
Ich habe keine Funktion von QTable gefunden, welche es mir ermöglciht, eine bestimmte Row über den Code auszuwählen. Hat jemand von euch die gleichen Erfahrungen gemacht, oder eine Lösung?

jgbauman
20-02-2002, 23:38
Just a guess:


QTable *table;
...
int row; // row to select
table->clearSelection (); // perhaps not necessary for some selection modes see QTable::setSelectionMode
QTableSelection sel;
sel.init(row, 0);
sel.expandTo(row, table->numCols() - 1);
table->addSelection(sel);

Der Code is nicht getestet, hab nur mal in die Doku geguckt.

TheDodger
21-02-2002, 09:22
Ja, da habe ich auch reingeschaut, und das gleiche in meinem code stehen, aber funktionieren tut's trotzdem nicht :)

jgbauman
21-02-2002, 11:59
Hab gard mal ein Mini-beispiel mit dem designer aufgesetzt:

Da tut folgendes (wie oben + zwei Zeilen Schoenheitskorrekturen):

int row = 21; // row to select
table->clearSelection (); // perhaps not necessary for some selection modes see QTable::setSelectionMode
QTableSelection sel;
sel.init(row, 0);
sel.expandTo(row, table->numCols() - 1);
table->addSelection(sel);
table->ensureVisible(row, 0);
table->setCurrentCell(row, 0);

Achja: qt-x11-free-3.0.1 + gcc-3.0.2

TheDodger
22-02-2002, 12:08
Danke, werd ich gleich mal testen ...
Die letzten 2 Zeilen ... naja, manchmal sieht man den Baum vor lauter Bäumen nicht.

(Ich entwickle z.Z. unter QT3.0.2/win & QT3-x11-free-shnapshot-x/linux)

BTW, da hab ich noch eine frage.

Ich möchte jetzt in der statusBar die aktuelle column & row darstellen. und das so, das ich mich via cursor innerhalb der table bewegen kann und ein sofortiges update der statusBar erfolgt.
Eine Idee, wie das ich das bewerkstelligen könnte?

jgbauman
22-02-2002, 14:30
Ich würd mich an das Signal:

void currentChanged ( int row, int col )

hängen.

TheDodger
22-02-2002, 16:21
bin dabei.
Wir haben da mittlerweile eine von QTables abgeleitete Klasse erstellt, die noch ein paar anderer Sachen mit kann.
Alles in allem finde ich QTables nicht sehr gut dokumentiert, oder ausgereift ...
oder ich bin zu verwöhnt ...
oder ich will total unnatürliche Sachen machen :)

Wenn ich einen Plan hätte, wie ich mir ein eigenes Widget 'zusammen braten' könnte ... würd ich's tun ... aber dem ist (noch) nicht so.
Im Moment habe ich weder die Zeit noch den Kopf dafür :(