Qt关于padding设置不起作用的的解决办法
观察以下的代码:
MyWidget::MyWidget(QWidget *parent)
: QWidget{parent}
,m_btn(new QToolButton(this))
{
this->setFixedSize(500,500);
m_btn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
m_btn->setIcon(QIcon("F:tabIcon/person-white.svg"));
m_btn->setText("hello");
m_btn->setFixedSize(200, 50);
m_btn->show();
m_btn->move(100,100);
m_btn->setStyleSheet("margin-left: 60px;");
}
你可能会认为这就是让QToolButton中的图标和文字往右挪动的代码,但是一运行你会发现:
它并没有往右挪动, 经过一段时间的查找,得出如下结论:padding
是与元素的边框(border
)之间的距离相关的。
具体来说:
padding
是内容与元素边框之间的空间。border
是元素的边缘线,决定了元素的外观和大小。- 如果没有设置
border
,元素的边缘就没有明显的定义,因此padding
的空间可能显得没有变化。
设置为如下即可:
border: 1px solid black;
padding: 10px;