Frage zu stackedLayout und Cursorvergabe

Verschiedenes zu Qt
Antworten
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

Frage zu stackedLayout und Cursorvergabe

Beitrag von TK »

Guten Morgen.

Zu 1.
1. ist ein QListWidget mit zwei Einträgen. Der erste Eintrag ist auf dem Bildausschnitt markiert. Ich habe den Cursor mit

Code: Alles auswählen

iList->setCursor(Qt::PointingHandCursor);
gesetzt. Doch der HandCursor erscheint schon, wenn ich nur auf die Liste zeige. Ich hätte es gerne, dass sich der Cursor nur verändert, wenn ich auf die Listeneinträge selbst zeige. Wie?

Zu 2.
2. ist ein QTextEdit. Wenn ich mit dem Mauszeiger über dieses Widget fahre soll sich der Cursor nicht verändern. Ich hätte gerne den standard arrow cursor. Mit

Code: Alles auswählen

iText->setCursor(Qt::ArrowCursor);
funktioniert es nicht.

Zu 3.
Der Bildausschnitt zeigt ein Dialog, welches in zwei Bereiche unterteilt ist. Beide Bereiche sind grau eingerahmt Der untere Bereich, an dem die Drei steht ist ein stackedLayout. Warum ist der graue Rahmen des stackedLayout in horizontaler Richtung etwas kleiner als der obere Rahmen? Ist das normal so?

Danke für Antworten.
Dateianhänge
bild.JPG
bild.JPG (8.19 KiB) 3649 mal betrachtet
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich würde mal hier ansetzen:

Code: Alles auswählen

void QLayout::setContentsMargins ( int left, int top, int right, int bottom )
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

Beitrag von TK »

By default, QLayout uses the values provided by the style. On most platforms, the margin is 11 pixels in all directions.
Aha, also ist bei nem stackedLayout der Rand defaultmäßig nicht 11 Pixel breit? Ist ja unschön. Somit muss ich bei beiden Bereichen über setContentsMargins(...) den Rand definieren?

Was gibt es zu 1. und 2. zu sagen?
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

Beitrag von TK »

Zur Info: ich rede da immer was von zwei Bereichen in dem Dialog. Also die zwei Bereiche, die ich da meine, sind zwei QGroupBox.

Habe es nun mal mit setContentsMargins probiert. Hier kann ich aber nur den Abstand der Widgets zur GroupBox verändern. Ich möchte aber den Abstand der GropBox zum Dialogrand verändern, sprich, beide GroupBoxen sollen zum Dialogrand den selben Abstand haben.

Geht das evtl mit QSizePolicy?
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

Beitrag von TK »

Zu 3.

habe festgestellt, das ist so, wenn stackedLayout verwendet wird.

Unter http://doc.trolltech.com/4.2/dialogs-configdialog.html ist es genauso

Jetzt müsste nur noch 1. und 2. geklärt werden. Weiß jemand wie?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Bei 1. hilft nur ein überladen von QListWidget.
Bei 2. seh ich keinen Sinn darin.
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

Beitrag von TK »

Der Hintergedanke bei 2. ist:

Das QTextEdit benutze ich nur, und nur, für einen Informationstext.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Das QTextEdit ist ein QAbstractScrollArea.
Es bringt dir wenig der SrollArea was zuzuweisen. Nimm stattdessen den viwport()

Code: Alles auswählen

edit->viewport()->setCursor(Qt::ArrowCursor);
Aber ein QTextEdit ist dafür da auch mal was daraus zu markieren und zu kopieren, und da ist IBeam schon besser. Aus Benutzersicht also besser den Cursor so lassen wie man ihn sich über einem TextEdit erhofft.
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

Beitrag von TK »

Danke für den Tipp. Schaue mal was geht

:D

... ja, mit viewport()... geht's, thx. Wenn das schon so gut klapp, franzf, kannst du mir noch einen Tipp geben, wie ich nur einen PointingHandCursor über den Listeneinträgen bekomme und nicht über der ganzen Liste. Okay, es viel, Methode überladen. Welche? Mit was?
Antworten