如何让qt QScrollArea的 滚动条在左边显示

我在写项目的时候,碰到了一个问题
如何让qt QScrollArea的 滚动条在左边显示

要在 Qt 的 QScrollArea 中将滚动条显示在左边,可以通过设置 QScrollBar 的位置并使用 QBoxLayout 布局来实现。

具体步骤如下:

  • 创建一个 QScrollArea 对象,并将其添加到布局中。例如:
QScrollArea *scrollArea = new QScrollArea(this);
layout->addWidget(scrollArea);
  • 创建一个 QWidget 对象作为 QScrollArea 的内部小部件,并将其设置为 QScrollArea 的 widget。例如:
QWidget *widget = new QWidget;
scrollArea->setWidget(widget);
  • 创建两个 QScrollBar 对象,一个用于垂直滚动条,一个用于水平滚动条,并将其分别添加到 QScrollArea 的左侧和上方。例如:
QScrollBar *vScrollBar = new QScrollBar(Qt::Vertical, this);
QScrollBar *hScrollBar = new QScrollBar(Qt::Horizontal, this);
scrollArea->setVerticalScrollBar(vScrollBar);
scrollArea->setHorizontalScrollBar(hScrollBar);
layout->addWidget(vScrollBar, 0, 0);
layout->addWidget(hScrollBar, 1, 1);
  • 设置 QBoxLayout 布局的方向为从右到左,并将 QScrollArea 的 widget 添加到该布局中。例如:
    QHBoxLayout *hBoxLayout = new QHBoxLayout;
    hBoxLayout->addStretch();
    hBoxLayout->addWidget(widget);
    layout->addLayout(hBoxLayout);

这样就可以将 QScrollArea 的滚动条显示在左侧。注意,这种方法需要根据实际情况进行调整,以便在 QScrollArea 中正确放置控件和滚动条。

  • 文章:Qt——QScrollArea滑动条不显示问题 中也许有你想要的答案,请看下吧
  • 同时,你还可以查看手册:qt QScrollArea 中的内容
  • 除此之外, 这篇博客: Qt QScrollArea 用法 QScrollArea不显示 QScrollArea没铺满中的 2.简述 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在设计器里边用滚动区很简单,先这样然后这样就可以了。。。
    但是手写代码没理解的话就容易出现不显示,加了布局器没拉伸的效果。如上没铺满示例。
    重要的就是这个
    setWidgetResizable(true);

    文档解释
    这个属性用于控制滚动区域是否需要调整视图小部件的大小。
    如果这个属性被设置为false(默认值),滚动区域表示它的小部件的大小。不管这个属性是什么,你都可以使用widget()->resize()以编程方式调整小部件的大小,滚动区域会自动调整到新的大小。
    如果这个属性设置为true,滚动区域将自动调整小部件的大小,以避免滚动条,或者利用额外的空间。