在 Qt 中,如果您发现 labelNew
在布局中没有居中,可能是由于以下几个原因:
Margins 和 Spacing: 您的布局可能有额外的边距或间距。可以检查父布局的设置,看看是否有设置导致空间增加。
Contents Margins: 您已将
setContentsMargins(0, 0, 0, 10)
设置为标签,这会在底部留出 10 像素的空白。如果希望完全去掉这个底部空间,可以将其改为(0, 0, 0, 0)
。Alignment: 您已正确地使用
setAlignment(Qt::AlignBottom | Qt::AlignHCenter)
来设置标签对齐方式。如果要使其垂直居中,则需要使用Qt::AlignVCenter
而不是Qt::AlignBottom
。
以下是修改后的代码示例,使得标签在垂直和水平上都居中:
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));
// 修改为垂直居中
ui->labelNew->setAlignment(Qt::AlignVCenter | Qt::AlignHCenter);
// 将内容边距设为 0,以避免多余空间
ui->labelNew->setContentsMargins(0, 0, 0, 0);
确保在 labelNew
的父控件或布局上没有设置额外的边距或间隔,这样就能够达到理想的效果。如果仍然存在问题,请检查其他控件的布局属性以及整个窗口或控件的大小策略。
内容由零声教学AI助手提供,问题来源于学员提问