Qt关于padding设置不起作用的的解决办法

观察以下的代码:

cpp 复制代码
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;

相关推荐
老王熬夜敲代码2 小时前
Etcd使用
c++·微服务·etcd
2301_789015622 小时前
算法与数据结构——排序算法大全
c语言·开发语言·数据结构·c++·算法·排序算法·visual studio
光头闪亮亮3 小时前
基于 wxWidgets 框架的桌面应用程序-WebView 浏览器控件与Go后端数据交互
c++
无限进步_3 小时前
冒泡排序的多种实现方式详解
c语言·数据结构·c++·算法
ajassi20003 小时前
开源 C++ QT QML 开发(十六)进程--共享内存
c++·qt·开源
默|笙4 小时前
【c++】set和map的封装
android·数据库·c++
十五年专注C++开发5 小时前
QT 中的元对象系统(六):connect函数详解
开发语言·c++·qt·设计模式·系统架构·qevent
earthzhang20215 小时前
【1008】计算(a+b)/c的值
c语言·数据结构·c++·算法·青少年编程
BS_Li5 小时前
C++11(列表初始化、右值引用和移动语义)
c++·列表初始化·右值引用和移动语义
勇闯逆流河5 小时前
【C++】红黑树详解
开发语言·数据结构·c++