您的代码已经基本实现了在 vg
上添加背景图片,并在其上方创建一个透明的画板 pNewBoard
。
如果您想让 pNewBoard
盖在 vg
上面,可以使用层叠布局(stacked layout)来实现。具体步骤如下:
- 创建一个新的
QStackedLayout
对象。 - 将
vg
和pNewBoard
添加到该层叠布局中。 - 将该层叠布局设置为
ui->horizontalLayout_2
的布局管理器。
修改代码如下所示:
QWidget *vg = new QWidget(this);
ui->horizontalLayout_2->addWidget(vg);
QString imagePath = "E:\\YZYEdu\\WhiteBoard\\img\\123.png";
QString styleSheet = QString("background-image: url(%1);").arg(imagePath);
vg->setStyleSheet(styleSheet);
QStackedLayout* stackedLayout = new QStackedLayout();
stackedLayout->addWidget(vg);
WhiteBoard* pNewBoard = new WhiteBoard(vg, 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(m_CurrWhiteBoard);
ui->horizontalLayout_2->addLayout(stackedLayout);
通过这样的修改,您就可以将透明画板 pNewBoard
盖在带有背景图片的容器 vg
上面了。
希望这能满足您的需求!如果还有其他问题,请随时提问。
内容由零声教学AI助手提供,问题来源于学员提问