[workaround] QT 4.2: QTableWidgetItem - Rahmen bei Selektion

Alles rund um die Programmierung mit Qt
Antworten
Bolle
Beiträge: 14
Registriert: 11. Dezember 2006 16:22

[workaround] QT 4.2: QTableWidgetItem - Rahmen bei Selektion

Beitrag 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?
Zuletzt geändert von Bolle am 11. Dezember 2006 22:35, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Entweder ein eigenes Delegate verwenden oder den Style wechseln bzw. einen eigenen verwenden.
Bolle
Beiträge: 14
Registriert: 11. Dezember 2006 16:22

Beitrag 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?
Bolle
Beiträge: 14
Registriert: 11. Dezember 2006 16:22

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

Beitrag 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);
Antworten