【问题标题】:Why is QPushButton one pixel smaller than other widgets?为什么 QPushButton 比其他小部件小一个像素?
【发布时间】:2021-09-27 13:31:26
【问题描述】:

我注意到在默认的 Qt 样式中,按钮每边比其他小部件小一个像素 (example screenshot)。我想知道这是什么原因。应该是这样,还是bug?

我尝试使用样式表修复它:

QPushButton
{
  margin:-1px;

  padding-left: 6px;
  padding-right: 6px;
  padding-top: 4px;
  padding-bottom: 4px;
}

这在 Windows 10 上似乎可以正常工作,但在其他版本上会导致难看的按钮。我通过仅在程序在 Windows 10 上运行时加载该样式表来解决这个问题

if (QSysInfo::productVersion() == "10")
  // Set that stylesheet

这是解决 QPushButton 问题的正确方法,还是有一些更简洁的方法来解决(或解决)这个问题?

【问题讨论】:

    标签: qt qt5


    【解决方案1】:

    自动默认值:布尔

    当按钮是自动默认按钮时,此属性保持不变 因此,当 autoDefault() 设置为 True 时,一个大纲会显示(警告)如果您按下“Enter”键,则该按钮会被有效按下。来自文档:

    如果此属性设置为 true,则按钮为自动默认按钮。

    在某些 GUI 样式中,默认按钮的绘制周围有一个额外的框架,最多 3 个像素或更多。 Qt 会自动在自动默认按钮周围保留此空间,即自动默认按钮可能有稍大的尺寸提示。

    对于具有 QDialog 父级的按钮,此属性的默认值为 true;否则默认为 false。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多