我将QLabel
垂直居中于QHBoxLayout
内时遇到了一些问题。我的代码的相关部分如下:
QFrame* topBar = new QFrame();
topBar->setStyleSheet("background-color: #2c3d50;border-bottom: 3px solid #2c92b6;");
topBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
topBar->setFixedHeight(24);
QHBoxLayout* topBarLayout = new QHBoxLayout();
QLabel* label = new QLabel("MSFT");
label->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
label->setStyleSheet("font-size: 15px;font-weight: bold;border: 0px;");
label->setMinimumHeight(15);
topBarLayout->addWidget(label);
topBar->setLayout(topBarLayout);
topLayout->addWidget(topBar);
我的本地目标是让标签垂直居中。我尝试了什么:
Qt::AlignVCenter
- 没有影响QSizePolicy::PreferredSize
和QSizePolicy::Expanding
导致标签在没有minimumHeight
/ fixedHeight
的情况下垂直缩小,我希望它可以自由扩展到父级的高度minimumHeight
或添加padding/margin:
,只会继续向下移动QLabel
。我的最终目标是在固定高度和可变宽度上创建一个条形图(照片中的深蓝色图案),标签和按钮(例如标题,关闭,最大化等)在两侧对齐,无论酒吧的宽度。
互联网说,添加另一个QBoxLayout
以Label
垂直居中可以解决问题,但我会在该栏中添加许多组件,所以这个"解决方案"这将是非常不切实际的。
TL; DR:如何在水平布局中垂直对齐Label
(或简称其文字)?
答案 0 :(得分:2)
尝试更改布局的顶部/底部边距并保留$(document).ready(function() {
var x_timer;
$(".emal_new").on('click', function(e) {
var email_id = $(this).data("name");
var userResult = $(this).find('.user-result')
if (x_timer)
clearTimeout(x_timer);
x_timer = setTimeout(function() {
check_email_id_ajax(email_id);
}, 100);
});
function check_email_id_ajax(userResult, email_id) {
userResult.html(TheHTML);
$.post('ajax/mailbox.php', {
'email_id': email_id
}, function(data) {
userResult.html(data);
});
}
});
:
Qt::AlignVCenter