QLineEdit mit einem "Read-only-look"

Alles rund um die Programmierung mit Qt
Antworten
Cartman
Beiträge: 55
Registriert: 31. März 2006 16:55

QLineEdit mit einem "Read-only-look"

Beitrag von Cartman »

QLineEdit sollte sich im Zustand "read-only" dezent in den Hintergrund legen, d. h. die weiße Hintergrundfarbe sollte durch das einfache Widget-Grau ersetzt werden. QLineEdit auf "disabled" zu setzen ist für mich keine Lösung, da der Text dadurch in Geisterschrift erscheint.

QPalette, QBrush und QColor bringen mich zur Verzweiflung. Ich hab den Kram bin heute nicht geschnallt, obwohl ich echt kein Anfänger bin. Wie setzt man den weißen Hintergrund sauber (und portabel) auf die einfache Widget-Hintergrundfarbe (bei Win XP = grau, woander = xyz)?
PeterLustig
Beiträge: 386
Registriert: 21. November 2007 20:07

Beitrag von PeterLustig »

Naja um es Read-Only zu machen gibt es ja den Flag. Wenn du dann noch unbedingt einen grauen Hintergrund haben willst, kannst du ja einfach einen Stylesheet setzen.
Cartman
Beiträge: 55
Registriert: 31. März 2006 16:55

Beitrag von Cartman »

Ich will ja gar nicht unbedingt einen grauen Hintergrund. Läuft das Qt-App auf MacOS oder XYZ-OS, dann sollte sich die Hintergrundfarbe von QLineEdit an die allgemeine Widget-Hintergrundfarbe des OS und dessen GUI anpassen. Also statisch auf "rot", "gelb" oder so setzen, das möchte ich nicht.
PeterLustig
Beiträge: 386
Registriert: 21. November 2007 20:07

Beitrag von PeterLustig »

Dann setz doch einfach die readOnly Eigenschaft auf true, dann hast du ein ReadOnly-LineEdit. Und das sieht dann auch so aus, wie eben ein ReadOnly Element auf dem System aussieht.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Gibt es eigentlich ein Standard verhalten fuer Eingabefelder im readonly modus ?

Unter windows kocht da irgendwie jeder seine eigene Suppe ...
einige stellen den hintergrund grau(Hintergrundfarbe der Dialoge) dar
andere nehmen ein helleres grau ....
manche machen gar nich, ausser halt die funktion zum editieren zu sperren
manche machen den Text grau
viele machen den text dunkelgrau und hintergrund in dialoghinnergrund farbe ...

keine Ahnung ob es da nen wirklichen Standard gibt ...

Hintergrundfarben solltest ja aus dem Style, bzw der Farb-Pallete bekommen, so das es sie mit anpasst, wenn nen anderes Farbschema verwendest ...

Alternativ kannst ja das widget komplett umschalten / austauschen ...
im edit modus nimmst nen LineEdit, und im anzeige Modus nen Label, mit rahmen ...

Ciao ...
Cartman
Beiträge: 55
Registriert: 31. März 2006 16:55

Beitrag von Cartman »

Hm. Ich hab nochmal in QLabel reingeschaut: da scheint es "TextInteractionFlags" zu geben. Heißt das, ich habe auch dort optional die Text-Selektion wie bei QLineEdits? Das wär prima. Ich müßte dann nur die Frame-Konfiguration aus QLineEdit auslesen und das QLabel dementsprechend setzen. Könnte klappen.

Was den Style-Guide für Windows bei Read-only-Edits angeht: Ich hab schon versucht, nen Beispiel dafür unter meinen installierten Programmen zu finden, aber unter Windows macht echt jeder sein eigenes Süppchen -- wie du schon sagtest.

Häufiger Anwendungsfall ist eine Dateiselektionsmöglichkeit mit kleinem ToolButton mit "..."-Text bzw. Diskettenicon, wo dann ein FileDialog aufpoppt. Der ausgewählte Dateipfad soll dann nicht editierbar aber selektierbar in so einem QLineEdit daneben auftauchen.
PeterLustig
Beiträge: 386
Registriert: 21. November 2007 20:07

Beitrag von PeterLustig »

Wie gesagt, dafür ist die ReadOnly-Eigenschaft. Und ich hab es eigentlich nur bei Windows erlebt, dass sich das Aussehen nicht ändert, das Feld aber nicht editierbar wird. Ansonsten sind das irgendwelche Programme die das selbst anpassen wie sie lustig sind.
Cartman
Beiträge: 55
Registriert: 31. März 2006 16:55

Beitrag von Cartman »

PeterLustig hat geschrieben:Und ich hab es eigentlich nur bei Windows erlebt, dass sich das Aussehen nicht ändert, das Feld aber nicht editierbar wird.
Hm, dann kann ich damit evtl. leben, wenn's nur an Windows liegt. Danke.
Antworten