要让vg
和pNewBoard
自适应大小,可以使用布局管理器(例如QBoxLayout、QGridLayout)来管理它们的大小。以下是一种可能的实现方式:
QWidget* vg = new QWidget(this);
QString imagePath = "E:/YZYEdu/WhiteBoard/img/123.png";
QString styleSheet = QString("background-image: url(%1);").arg(imagePath);
vg->setStyleSheet(styleSheet);
QPixmap pixmap(imagePath); // 加载图片
if (!pixmap.isNull()) {
vg->setFixedSize(pixmap.size()); // 将 vg 大小设置为图片大小
}
QStackedLayout* stackedLayout = new QStackedLayout();
WhiteBoard* pNewBoard = new WhiteBoard(this, Qt::transparent);
m_lsWhiteBoard.push_back(pNewBoard);
for (auto it = m_lsWhiteBoard.begin(); it != m_lsWhiteBoard.end(); ++it) {
WhiteBoard* ptr = *it;
ptr->hide();
}
m_CurrWhiteBoard = pNewBoard;
stackedLayout->addWidget(vg);
stackedLayout->addWidget(m_CurrWhiteBoard);
ui->horizontalLayout_2->addLayout(stackedLayout);
// 设置部件自适应大小
ui->horizontalLayout_2->setSizeConstraint(QHBoxLayout::SetMinimumSize);
通过将vg
和pNewBoard
添加到布局管理器中,它们的大小会根据布局管理器的规则进行调整。同时,设置水平布局(ui->horizontalLayout_2
)的大小约束为最小大小(SetMinimumSize),这样可以确保部件在布局中能够自适应调整尺寸。
内容由零声教学AI助手提供,问题来源于学员提问