Vertical Scroll Bar to QVBoxLayout
Solved
General and Desktop
-
Hi,
I am new in Qt. I want to set scrollbar to the QVBoxLayout. I have added the following code.- setGeometry(0, 0, 240, 320);
- QWidget *win = new QWidget();
- setCentralWidget(win);
- QVBoxLayout *verBoxLayout= new QVBoxLayout(win);
- QLabel *lbl=new QLabel(tr("Test"));
- verBoxLayout->addWidget(lbl);
My question is that how to add a vertical scrollbar to the Vertical Layout and make it visible all time.
-
You need to use a QScrollArea instead a QWidget as central widget.
-
Hi @Rumzi , use QScrollArea, set the QWidget to it and then set the QScrollArea as centralWidget.
Here is the sample code:-
setGeometry(0, 0, 240, 320); QWidget *window = new QWidget(this); QVBoxLayout *vBoxLayout= new QVBoxLayout(window); for (int i = 0; i < 20; i++) { QLabel *label=new QLabel(tr("Test ") + QString::number(i)); vBoxLayout->addWidget(label); } QScrollArea *scrollArea = new QScrollArea(this); scrollArea->setWidget(window); setCentralWidget(scrollArea);
Sample Output:-
For more information about QScrollArea[https://doc.qt.io/qt-5/qscrollarea.html]
-
@Shrinidhi-Upadhyaya , thanks bro. it's worked absolutely fine. I need another help to resize the scrollbar width.
-
Hi @Rumzi
You can use
setStyleSheet();
Reference: Qt Style Sheets.Example:
QScrollArea *scrollArea = new QScrollArea(this); scrollArea->setStyleSheet("QScrollBar:vertical { " "width: 25px; " // Change as per your requirement "}");