Seite 1 von 1

[solved]QListView HorizontalScrollbar resize tut nichts?

Verfasst: 4. April 2012 11:38
von MiSi
Hallo Volks,

ich will die Scrollbars (Vertical/Horizontal) meiner QListView in doppelter Breite darstellen.
Mein Ansatz ist folgender:

Im Constructor meines abgeleiteten QListView rufe ich folgendes auf.

Code: Alles auswählen

      this->verticalScrollBar()->resize(this->this->verticalScrollBar()->width(),this->verticalScrollBar()->height()*2);
      this->horizontalScrollBar()->resize(this->this->horizontalScrollBar()->width()*2,this->horizontalScrollBar()->height());
Wenn jetzt aber die Scrollbars, bei bedarf, angezeigt werden, sind die Scrollbars noch auf der default Groesse.

Wie loest man solch ein Problem? setGeometry hab ich auch schon versucht, ohne Erfolg.

Ich nutze Qt 3.3 also stehen keine StyleSheets zur verfuegung.

Viele Gruesse

Michael

Re: QListView HorizontalScrollbar resize tut nichts?

Verfasst: 12. April 2012 10:42
von trendyAndy
Hallo Michael,

bau dir deine eigene ScrollBar und verändere den SizeHint.

Code: Alles auswählen

#ifndef NEWSCROLLBAR_H
#define NEWSCROLLBAR_H

#include <QScrollBar>

class NewScrollBar : public QScrollBar
{
Q_OBJECT
public:
    explicit NewScrollBar(QWidget *parent = 0);

    QSize sizeHint() const;

signals:

public slots:

};

#endif // NEWSCROLLBAR_H

#include "newscrollbar.h"

NewScrollBar::NewScrollBar(QWidget *parent) :
    QScrollBar(parent)
{
}

QSize NewScrollBar::sizeHint() const
{
    return QSize(this->width()+50, this->height()) ;
}
Du kannst dir auch noch einen SLOT oder was auch immer einbauen damit du die width() ändern kannst. Das Beispiel hat bei mir funktioniert.
In der TableView dann halt deiner View die eigene Scrollbar zuweisen.

Gruß
Andre

Re: QListView HorizontalScrollbar resize tut nichts?

Verfasst: 16. April 2012 09:49
von MiSi
Hallo

danke für die Antwort. Wollte den Weg eigentlich umgehen, aber in dem Fall funktioniert es wohl nicht anders.