要让 ui->labelNew
的文本显示在图片的下面,您可以使用一个垂直布局来放置标签和文本。首先,将图片设置为标签的背景,然后再创建一个新的 QLabel 用于显示文本。这样,您就可以控制它们之间的关系。
以下是如何实现这一目标的示例代码:
// 创建一个新的 QVBoxLayout
QVBoxLayout *layout = new QVBoxLayout(ui->labelNew);
// 设置 labelNew 的背景图像
QString currentPath = QCoreApplication::applicationDirPath();
QString pathnew = currentPath + "/img/new.svg";
ui->labelNew->setStyleSheet(QString("background-image: url(%1);"
"background-repeat: no-repeat;"
"background-position: center;").arg(pathnew));
// 添加图片到 label 中,实际上我们只用它作为背景,所以这里不需要其他内容
// 创建一个 QLabel 用于显示文本
QLabel *textLabel = new QLabel("Your Text Here", ui->labelNew);
textLabel->setAlignment(Qt::AlignHCenter); // 水平居中对齐
// 可选:设置边距,使得文本距离图片更近或更远
textLabel->setContentsMargins(0, 10, 0, 0); // 上边距10,可以根据需要调整
// 将 textLabel 添加到 layout 中
layout->addWidget(textLabel);
// 最后将 layout 应用到 labelNew 上(如果是 Qt5 或者更新版本)
ui->labelNew->setLayout(layout);
注意事项:
- 层叠控件: 使用
QVBoxLayout
来使图片与文本垂直排列。 - 内容边距: 您可以通过调整
setContentsMargins()
方法来控制文本与底部之间的间距。 - 布局管理: 确保您的
ui->labelNew
控件能够承载这个新的布局,并且不会被其他控件所覆盖。
这种方法可以保证您的图像和文本在视觉上保持清晰并且美观。如果有任何进一步的问题,请告诉我!
内容由零声教学AI助手提供,问题来源于学员提问