Seite 1 von 1

QScrollbar in QWidget mit überladenem paintEvent()

Verfasst: 20. Dezember 2009 17:21
von slash-ex
Ich bin am überlegen wie ich am günstigsten eine Scrollbar in ein Widget einbaue, welches etwas bestimmtes zeichnen soll. Ich bin etwas unsicher wie das prinzipiell vorgesehen ist, diese QScrollbat zu benutzen, aber prinzipiell wäre es möglich die ScrollBar innerhalb des Widgets zu zeichnen und die Position bei jedem update() zu aktualisieren, das scheint allerdings unter KDE leichte Bildfehler zu verursachen.
Dann wäre es evtl. noch möglich das Bild als Bitmap zu speichern und in eine ScrollArea zu packen, aber hier bin ich mir unsicher ob sich das lohnt, zumal man sich ur eine Scrollbar wünscht und das Verhalten selber anpassen möchte. Außerdem rendere ich bisher nur einen kleinen Bereich und eine QScrollarea ist naturgemäß für übergroße Bildervorgesehen und ein großes Bild zu übergeben wäre zu langsam.
Am besten wäre es wenn man irgendwie automatisch am rechten Rand eine Scrollbar einblenden könnte. sollte man dafür vielleicht direkt das QScrollbar::paintEvent überladen? anstatt den umweg über ein Qwidget zu gehen und da eine scrollbar reinzuzeichnen?

Verfasst: 20. Dezember 2009 19:21
von upsala
Eine QScrollArea ist für übergroße Inhalte gedacht. Malen kannst du immer noch selber. Schau dir mal das ItemView-Chart-Example an.

Verfasst: 20. Dezember 2009 20:06
von slash-ex
denke das abstractitemview würde sich ideal eignen.