Layout + QScrollArea


Qt的FormLayout有多列时,怎么让他自动加上滚动条?


各位大侠,请教一个问题。
我在QT Creator里面定义了一个QFormLayout,添加了很多列,但是我的窗体是固定大小的,有的列显示不了了。
怎么给FormLayout加一个滚动条,让所有的列都能显示呢。
ps:我的窗体大小不能改变,只能通过添加滚动条是吗,怎么添加呢。


首先添加QScrollArea,在这个里面加QWidget,然后添加你的小部件并布局,在设置部件关联。类似这个代码吧:
    QScrollArea *pArea= new QScrollArea(this);
    QWidget * qw = new QWidget(pArea);//需要滚动的是一个Qwidget,而如果是在设计器里面拖入控件,会自动添加一个
    QPushButton * pb = new QPushButton(qw);
    pb->setText("1235647");
    pb->move(130,50);
    pArea->setWidget(qw);//这里设置滚动窗口qw


@u010111033,谢谢你了。我按照你说的方法,在设计器里面添加了一个QScrollArea,它自动添加了一个widget,我就在我的代码里面执行了一句话,就添加了滚动条功能。
ui->scrollAreaWidgetContents->setLayout(myformLayout);



PS:解决了我很多困惑的地方,有用。

奇怪的是:如果对QScrollArea控件进行Layout,那么无法单击滚动条,奇怪啊?



QScrollArea 是一个 Qt 常用的可滚动区域控件,它可以在需要显示大量内容但又不想占用过多屏幕空间时使用。QScrollArea 可以包含一个 widget,并在 widget 的大小大于 QScrollArea 大小时提供滚动条来浏览 widget 内容。 使用 QScrollArea 可以实现很多场景,比如在一个窗体中显示一张很大的图片、显示一个文本编辑器、显示大量数据等等。 使用 QScrollArea 控件的基本步骤如下: 1. 创建一个 QScrollArea 控件。 2. 创建一个 widget ,并将其设置为 QScrollArea 的子控件。 3. 设置 widget 的大小,并且将 widget 中需要显示的内容添加到 widget 中。 4. 将 widget 设置为 QScrollArea 的 viewport。 5. 如果需要,可以设置 QScrollArea 的滚动条策略。 以下是一个简单示例: ```python from PyQt5.QtWidgets import QApplication, QWidget, QScrollArea, QVBoxLayout, QLabel app = QApplication([]) window = QWidget() scroll_area = QScrollArea() widget = QWidget(scroll_area) layout = QVBoxLayout(widget) for i in range(50): label = QLabel(f"Label {i}") layout.addWidget(label) widget.setLayout(layout) scroll_area.setWidgetResizable(True) scroll_area.setWidget(widget) main_layout = QVBoxLayout(window) main_layout.addWidget(scroll_area) window.setLayout(main_layout) window.show() app.exec_() ``` 在上面的示例中,我们创建了一个 QWidget 控件作为 QScrollArea 的子控件,然后在这个 widget 中添加了 50 个 QLabel 控件。最后将 widget 设置为 QScrollArea 的 viewport,并设置 QScrollArea 可以改变 widget 大小。这样就可以通过滚动条来浏览 widget 中的内容了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值