2021-06-09 03:09:30 +08:00
|
|
|
#include "selfdrive/ui/qt/widgets/scrollview.h"
|
2021-04-01 14:03:31 -07:00
|
|
|
|
2021-05-09 13:15:17 +08:00
|
|
|
#include <QScrollBar>
|
2021-06-16 15:08:02 +08:00
|
|
|
#include <QScroller>
|
2021-05-09 13:15:17 +08:00
|
|
|
|
2021-06-11 16:17:52 +08:00
|
|
|
ScrollView::ScrollView(QWidget *w, QWidget *parent) : QScrollArea(parent) {
|
2021-04-01 14:03:31 -07:00
|
|
|
setWidget(w);
|
|
|
|
|
setWidgetResizable(true);
|
|
|
|
|
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
|
|
|
|
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
2021-12-15 09:58:25 -08:00
|
|
|
setStyleSheet("background-color: transparent;");
|
2021-04-01 14:03:31 -07:00
|
|
|
|
2021-04-03 01:18:26 -07:00
|
|
|
QString style = R"(
|
|
|
|
|
QScrollBar:vertical {
|
|
|
|
|
border: none;
|
|
|
|
|
background: transparent;
|
2021-07-15 17:41:01 -07:00
|
|
|
width: 10px;
|
2021-04-03 01:18:26 -07:00
|
|
|
margin: 0;
|
|
|
|
|
}
|
|
|
|
|
QScrollBar::handle:vertical {
|
|
|
|
|
min-height: 0px;
|
2021-07-15 17:41:01 -07:00
|
|
|
border-radius: 5px;
|
2021-04-03 01:18:26 -07:00
|
|
|
background-color: white;
|
|
|
|
|
}
|
|
|
|
|
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical {
|
|
|
|
|
height: 0px;
|
|
|
|
|
}
|
|
|
|
|
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
|
|
|
|
|
background: none;
|
|
|
|
|
}
|
|
|
|
|
)";
|
|
|
|
|
verticalScrollBar()->setStyleSheet(style);
|
|
|
|
|
horizontalScrollBar()->setStyleSheet(style);
|
|
|
|
|
|
2021-04-01 14:03:31 -07:00
|
|
|
QScroller *scroller = QScroller::scroller(this->viewport());
|
|
|
|
|
QScrollerProperties sp = scroller->scrollerProperties();
|
|
|
|
|
|
|
|
|
|
sp.setScrollMetric(QScrollerProperties::VerticalOvershootPolicy, QVariant::fromValue<QScrollerProperties::OvershootPolicy>(QScrollerProperties::OvershootAlwaysOff));
|
|
|
|
|
sp.setScrollMetric(QScrollerProperties::HorizontalOvershootPolicy, QVariant::fromValue<QScrollerProperties::OvershootPolicy>(QScrollerProperties::OvershootAlwaysOff));
|
|
|
|
|
|
|
|
|
|
scroller->grabGesture(this->viewport(), QScroller::LeftMouseButtonGesture);
|
|
|
|
|
scroller->setScrollerProperties(sp);
|
|
|
|
|
}
|
2021-04-13 13:42:13 -07:00
|
|
|
|
2021-06-11 16:17:52 +08:00
|
|
|
void ScrollView::hideEvent(QHideEvent *e) {
|
2021-04-13 13:42:13 -07:00
|
|
|
verticalScrollBar()->setValue(0);
|
|
|
|
|
}
|