Seite 1 von 1

[workaround] QT 4.2: QTableWidgetItem - Rahmen bei Selektion

Verfasst: 11. Dezember 2006 17:12
von Bolle
QT 4.2: QTableWidgetItem - Rahmen bei Selektion

Hallo zusammen

Es ist verblüffend wie viel Zeit ich mit Details verbringen kann auch wenn die Hauptfunktionalitäten noch nicht komplett implementiert sind. Aber dennoch Schönheit muss sein, und wenn ich die schon in meinem Code zur Genüge vermissen lasse, dann wenigstens beim GUI :D

Ich habe ein QTabelWidget mit zwei Kolonen. Eine Kolone für ein Icon und eine für Text. Ich selektiere immer Zeilenweise. Wenn ich nun auf das Icon Klicke selektiert es mr wie gewünscht die Zeile. Wenn ich auf den Text Klicke, dann selektiert es mir auch die Zeile, aber zeichnet um den Text einen hässlichen Rahmen mit gestrichelter Linie.

Frage: wie bekomme ich diesen Rahmen weg?

Verfasst: 11. Dezember 2006 19:13
von upsala
Entweder ein eigenes Delegate verwenden oder den Style wechseln bzw. einen eigenen verwenden.

Verfasst: 11. Dezember 2006 21:44
von Bolle
upsala hat geschrieben:Entweder ein eigenes Delegate verwenden oder den Style wechseln bzw. einen eigenen verwenden.
hi Upsala

Ich habe mich nochmals hinter das StyleSheet geklemmt, aber leider anscheinend den passenden Eintrag nicht gefunden...

Hast du evt. eine Idee welchen Eintrag ich verändern müsste?

ist immer wieder schön wenn's klappt...

Verfasst: 11. Dezember 2006 22:21
von Bolle
die Antwort lag wohl vor der Nase, deshlab hab ich sie nicht gesehen:

_table->setFocusPolicy(Qt::NoFocus);

Jedoch hat auch diese Lösung einen Schönheitsfehler. Klicke ich nämlich auf die horizontalen oder vertikalen Header Felder, erscheint der Fokus auf dem markierten QTableWidgetItem wieder. Scheinbar ignoriert, resp überschreibt die Headerklasse die gesetzte Policy :evil: :

Ich bin das Problem mit folgendem Ansatz umgangen:

_table->verticalHeader()->setFocusPolicy(Qt::NoFocus);
_table->horizontalHeader()->setFocusPolicy(Qt::NoFocus);