关于 qt:QT4: 是否可以使 QListView 平滑滚动?

QT4: Is it possible to make a QListView scroll smoothly?

我有一个图标模式的 QListView 有很多图标,所以会出现一个滚动条,但滚动不流畅,这个恕我直言,因为它在每次滚动时突然从一个点跳到另一个点,所以让用户感到困惑。我想让滚动平滑,但我在文档中没有找到任何内容。有可能吗?


可能是 QListView.setVerticalScrollMode(QAbstractItemView::ScrollPerPixel)


如果我正确理解您的问题,您想重新定义小部件的滚动行为。我猜发生的情况是,每当用户点击滚动箭头(在下图中标记为 b)时,listview 都会按项目的高度滚动。

alt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class TestListView : public QListView
{
Q_OBJECT
public:
    explicit TestListView(QWidget *parent = 0);

protected:
    virtual void updateGeometries();
};

TestListView::TestListView(QWidget *parent) :
    QListView(parent)
{
    //???
}

void TestListView::updateGeometries()
{
    QListView::updateGeometries();
    verticalScrollBar()->setSingleStep(2);
}

希望这会有所帮助,问候


我在 ui->barra_scroll 中有一个 QlistWidget*,对此我感觉非常流畅。

1
2
QScrollBar *qsb = ui->barra_scroll->verticalScrollBar();
qsb->setSingleStep(5);