C++ 在滚动区域中使用自定义Qt类,并强制不调整元素大小,而是显示滚动条
我花了几天时间试图解决这个问题,但没有取得任何进展,我想我遗漏了什么,请帮我解决 在主窗口中,我创建了滚动区域并给它垂直布局。我已经创建了Qt设计器类(myform.h、myform.cpp和myform.ui),并放置了一些按钮和垂直布局 这是“myform.ui”: 我希望主窗口中的滚动区域包含“myform.ui”,并且“myform.ui”中的元素不会被调整大小,而是滚动条出现在滚动区域中 我的mainwindow.cpp是C++ 在滚动区域中使用自定义Qt类,并强制不调整元素大小,而是显示滚动条,c++,qt,C++,Qt,我花了几天时间试图解决这个问题,但没有取得任何进展,我想我遗漏了什么,请帮我解决 在主窗口中,我创建了滚动区域并给它垂直布局。我已经创建了Qt设计器类(myform.h、myform.cpp和myform.ui),并放置了一些按钮和垂直布局 这是“myform.ui”: 我希望主窗口中的滚动区域包含“myform.ui”,并且“myform.ui”中的元素不会被调整大小,而是滚动条出现在滚动区域中 我的mainwindow.cpp是 #include "mainwindow.h" #includ
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "myform.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
MyForm* myform = new MyForm(this);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(myform);
ui->scrollArea->setWidgetResizable(false);
ui->scrollArea->setLayout(layout);
}
MainWindow::~MainWindow()
{
delete ui;
}
问题是滚动条不会出现,并且在调整窗口大小时,元素的大小正在调整
图片:
这只是一个简单的例子来说明我遇到的问题。根据的文档,您似乎必须将背景小部件设置到滚动区域。此代码直接取自
QScrollArea
小部件的文档:
QLabel *imageLabel = new QLabel;
QImage image("happyguy.png");
imageLabel->setPixmap(QPixmap::fromImage(image));
scrollArea = new QScrollArea;
scrollArea->setBackgroundRole(QPalette::Dark);
scrollArea->setWidget(imageLabel);
制作图像标签。一个pixmap被加载到其中。然后,滚动区域小部件由setWidget()
命令指定
在您的代码中,我认为ui->scrollArea->setLayout(布局)代码>
应该是
ui->scrollArea->setWidget(布局)代码>取而代之
注意:我还没有测试过这段代码,但我认为它会解决您的问题