gpt4 book ai didi

c++ - QGroupBox 内的 QScrollArea,滚动条而不是调整 QGroupBox 的大小

转载 作者:行者123 更新时间:2023-11-30 03:47:19 26 4
gpt4 key购买 nike

我想在 QGroupBox 中有一个 QScrollArea,所以当我向分组框添加新的小部件时,它的大小保持不变,但我有滚动条而不是调整分组框本身的大小。

这是我的代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QtCore>
#include <QtGui>
#include <QLayout>
#include <QScrollArea>
#include <QGroupBox>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QGroupBox *box = new QGroupBox(QObject::tr("Example"));
QScrollArea *sa = new QScrollArea;

QGridLayout *gridLayout = new QGridLayout;
QPushButton *b1 = new QPushButton("A");
QPushButton *b2 = new QPushButton("B");
QPushButton *b3 = new QPushButton("C");
QPushButton *b4 = new QPushButton("D");
QPushButton *b5 = new QPushButton("E");
QPushButton *b6 = new QPushButton("F");
QPushButton *b7 = new QPushButton("F");
QPushButton *b8 = new QPushButton("F");
QPushButton *b9 = new QPushButton("F");

// addWidget(*Widget, row, column, rowspan, colspan)
// 0th row
gridLayout->addWidget(b1,0,0,1,1);
gridLayout->addWidget(b2,0,1,1,1);
gridLayout->addWidget(b3,0,2,1,1);

// 1st row
gridLayout->addWidget(b4,1,0,1,1);

// 2nd row with 2-column span
gridLayout->addWidget(b5,2,0,1,2);

// 3rd row with 3-column span
gridLayout->addWidget(b6,3,0,1,3);

gridLayout->addWidget(b7,4,0,1,3);

gridLayout->addWidget(b8,5,0,1,3);

gridLayout->addWidget(b9,6,0,1,3);

box->setLayout(gridLayout);
sa->setWidget(box);

setCentralWidget(sa);
}

MainWindow::~MainWindow()
{
delete ui;
}

我现在所拥有的是,每次我添加一个新的 QPushButton 时,QGroupBox 都会调整大小,无论是否有 QScrollArea。我应该改变什么以获得我想要的行为?可能吗?

最佳答案

那是因为您将组框放在了滚动区域内。滚动区域不限制其子项的大小。

你应该反其道而行之,把scrollarea放在分组框中。方法如下;

QWidget* sw = new QWidget();
sw->setLayout(gridLayout);
sa->setWidget(cont);
QVBoxLayout* bl = new QVBoxLayout(box);
bl->addWidget(sa);

setCentralWidget(box);

请注意,如果您使用切换按钮(例如单选按钮),它们将不会作为一个组使用。因为从技术上讲,它们不再在同一个 QGroupBox 中——它们在滚动区域内。您可以使用 QButtonGroup 实例提供组行为。

关于c++ - QGroupBox 内的 QScrollArea,滚动条而不是调整 QGroupBox 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33719075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com