QT里的滚动条操作,
我理解的QScrollArea对象的使用为,把某个widget绑定到该QScrollArea对象,scrol->setWidget(widget);
绑定的widget对象的长宽超过边界时,会有滚动条的效果。
#include <QtGui/QApplication>
#include <QLabel>
#include <QImage>
#include <QScrollArea>
#include <QHBoxLayout>
void ScrollArea_test::Init()
root_widget_ = new QWidget(this);
setCentralWidget(root_widget_);
QVBoxLayout* root_layout = new QVBoxLayout(root_widget_);
setLayout(root_layout);
QWidget* widget = new QWidget();
QVBoxLayout* layout = new QVBoxLayout(widget);
setLayout(layout);
QPushButton* btn_1 = new QPushButton();
btn_1->setText("zhangsan");
btn_1->setFixedSize(600, 600);
QPushButton* btn_2 = new QPushButton();
btn_2->setText("zhangsan");
btn_2->setFixedSize(600, 600);
layout->addWidget(btn_1);
layout->addWidget(btn_2);
QScrollArea* scrol = new QScrollArea();
scrol->setWidget(widget);
scrol->setWidgetResizable(1);
scrol->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scrol->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
root_layout->addWidget(scrol);
QPushButton* btn_3 = new QPushButton();
btn_3->setText("lisi");
btn_3->setFixedSize(100, 100);
root_layout->addWidget(btn_3);
显示效果为:
QT里的滚动条操作,代码参考自:https://blog.51cto.com/9291927/1867974#include <QtGui/QApplication>#include <QLabel>#include <QImage>#include <QScrollArea>#include <QHBoxLayout>in...
QScrollArea 最主要的方法在于,
简单来说就是设置画布的意思,通常我们在使用的时候需要先把需要的控件放到一个画布里。而QScrollArea 就类似于我们拿着一个放大镜去观察这个画布。所以想要出现滚动条,画布的大小一定要比QScrollArea 大!
以下代码示例:
最后,我们还可以对滚动条禁用。例如禁用横向滚动条:
效果图待添加:
有些时候,我们界面能展示的区域被限定的很小,但是需要展现的控件、内容却很多,在限定大小的区域中无法全部显示。这个时候就需要滚动条了。在Qt中有一个很好的类 QScrollArea。
有两种方式可是实现滚动区域:
第一种直接用 Qt Designer 去设计ui文件:
拖入QScrollArea然后进行布局即可。
第二种是代码实现:
QLabel *imageLabel = new Q...
继承于QWidget创建的项目,要想在QWidget中添加很多子控件,考虑到若是子控件的数目不确定,太多的时候就需要添加滚动条来实现滚动查看,于是可以自定义一个类,在该类中实现滚动区域和滚动窗口的创建,然后将该自定义的类提升为QWidget。
下面是自定义的滚动区域类
scrolldisplaywidget.h
#ifndef SCROLLDISPLAYWIDGET_H
#define SCROLLDISPLAYWIDGET_H
#include <QFrame>
#include
在Qt中,可以使用QScrollArea类来创建一个带有滚动条的窗口部件。要设置滚动条,可以使用setVerticalScrollBarPolicy()和setHorizontalScrollBarPolicy()方法来设置垂直和水平滚动条的显示策略。例如,以下代码将创建一个QScrollArea对象,并设置垂直滚动条始终可见,水平滚动条从不可见:
QScrollArea *scrollArea = new QScrollArea;
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
除了设置滚动条的显示策略外,还可以使用QScrollBar类的方法来设置滚动条的其他属性,例如范围、步长、当前值等。可以使用setWidget()方法将要滚动的窗口部件设置为QScrollArea的子部件。例如,以下代码将创建一个QLabel对象,并将其设置为QScrollArea的子部件:
QLabel *label = new QLabel("This is a long text that needs to be scrolled.");
scrollArea->setWidget(label);