Seite 1 von 2

Qt4: Scrollbar Up/Down Pfeile ausblenden

Verfasst: 29. Oktober 2009 12:21
von nando
Hi,

kann mir jemand sagen wie ich bei QScrollbars die Pfeile ausblenden kann?
Ich brauch nur den reinen slider ohne die buttons drumherum....


Gruss,
Nando

Verfasst: 29. Oktober 2009 18:38
von upsala
Also einen QSlider...

Verfasst: 30. Oktober 2009 15:45
von nando
ja schon,
aber die wie kann ich den setzen wenn es nur methoden gibt wie
setHorizontalScrollBar(QScrollBar*) ?

gruss,
nando

Verfasst: 30. Oktober 2009 18:55
von upsala
Das kommt davon, wenn man nur die Hälfte der Informationen mitgibt...

Eine QScrollBar hat immer die 2/3 Pfeile an der Seite. Ich wüßte auch nicht warum die dem Benutzer wegnehmen sollte.

Verfasst: 31. Oktober 2009 13:40
von Troll.Soft
nando hat geschrieben: aber die wie kann ich den setzen wenn es nur methoden gibt wie
setHorizontalScrollBar(QScrollBar*) ?
Nun, zu dem Zweck hat Bjarne das Casten erfunden.

Code: Alles auswählen

TableView->setVerticalScrollBar((QScrollBar*)new QSlider(this));
funktioniert ausgezeichnet

Verfasst: 1. November 2009 20:01
von lepsai
Troll.Soft hat geschrieben:
nando hat geschrieben: Nun, zu dem Zweck hat Bjarne das Casten erfunden.

Code: Alles auswählen

TableView->setVerticalScrollBar((QScrollBar*)new QSlider(this));
funktioniert ausgezeichnet

Gefährlich, gefährlich... Zu diesem Zweck hat Bjarne dynamic_cast<> erfunden... Nun leider ist QSlider nicht zu QScrollbar zu casten, da diese nicht in einer Vererbungsrelation zueinander stehen. Funktionieren kann diese "brutale" Methode nur daher, dass QSlider und QScrollBar von QAbstractSlider abgeleitet sind. Unter Annahme, dass in setVerticalScrollBar() tatsächlich nur Methoden von QAbstractSlider verwendet werden und unter günstigen Kompilervoraussetzungen wird dieser Code laufen. Aber sicher ist es nicht...

Übrigens, die Trolls hätten die Methode setVerticalScrollBar() schon mit QAbstractSlider definieren können. Verkehrt wäre das nicht... An sich ist QScrollBar überflüssig...

Verfasst: 4. November 2009 12:35
von nando
lepsai hat geschrieben: Übrigens, die Trolls hätten die Methode setVerticalScrollBar() schon mit QAbstractSlider definieren können. Verkehrt wäre das nicht... An sich ist QScrollBar überflüssig...

Genau, darauf wollte ich hinaus... Das heisst entweder casten
was gefaehrlich ist, oder man hat geloost.

Dann muss ich mir doch eine eigen ScrollBar implementieren.. was wieder mega Aufwand waere und somit wahrscheinlich rausfaellt...

Ueber CSS kann man die Pfeildinger auch nicht abstellen, oder?

Gruss,
Nando

Verfasst: 4. November 2009 12:44
von lepsai
nando hat geschrieben: Ueber CSS kann man die Pfeildinger auch nicht abstellen, oder?

Gruss,
Nando
Ich denke, schon... Das wäre auch am besten...

Verfasst: 4. November 2009 12:55
von AuE

Verfasst: 5. November 2009 10:18
von nando
AuE hat geschrieben:Aus dem Stylesheet examples
http://doc.trolltech.com/4.3/stylesheet ... qscrollbar

und wo steht da, wie man die pfeile ausblendet?
kann ich leider nicht finden....

Verfasst: 5. November 2009 11:41
von AuE
Da steht nicht wie man sie ausblendet....aber Bsp wie man sie verändert!!

Verfasst: 5. November 2009 19:25
von cypher
Scrollbar ableiten und aussehen umbauen..

Verfasst: 6. November 2009 06:53
von Troll.Soft
Hallo,
da ich mich irgendwann mal ausführlich mit den Stylesheets befassen muß, habe ich mal reingeschaut und untenstehenden Code getestet. Ich gebe zu, den Code habe ich nicht verstanden. Das Ergebnis ist allerdings beeindruckend. Es verschwindet fast alles und nur ein riesiger Button bleibt zurück.
viel Spaß beim Probieren
wenn Du es schaffst poste mal den Code

Code: Alles auswählen

this->setStyleSheet(" QScrollBar {border: 20px solid red; width: 30px; height: 30px; background: blue;}");

Verfasst: 6. November 2009 09:24
von nando
Troll.Soft hat geschrieben:Hallo,
da ich mich irgendwann mal ausführlich mit den Stylesheets befassen muß, habe ich mal reingeschaut und untenstehenden Code getestet. Ich gebe zu, den Code habe ich nicht verstanden. Das Ergebnis ist allerdings beeindruckend. Es verschwindet fast alles und nur ein riesiger Button bleibt zurück.
viel Spaß beim Probieren
wenn Du es schaffst poste mal den Code

Code: Alles auswählen

this->setStyleSheet(" QScrollBar {border: 20px solid red; width: 30px; height: 30px; background: blue;}");


wilkommen im club ;)

hab auch schon rumprobiert ... fast alles hinbekommen, nur nicht die pfeile ausgeblendet :(

Verfasst: 6. November 2009 20:20
von upsala
Wenn mir mal jemand den Sinn dieses Vorhabens erklärt, gibts vielleicht eine alternative einfache Lösung...