standard/system QLineEdit 的确切边框颜色和宽度?

Exact border color and width of standard/system QLineEdit?

有谁知道 standard/system QLineEdit 的边框颜色?黑色is/seems太黑了。它看起来像一些灰色阴影,但想要准确的颜色。

还有,边框宽度是1px吗?

没有“standard/system”边框颜色和边框大小。这取决于:

  • OS;
  • OS 可能的样式自定义;
  • 正在使用的 Qt 样式(可能取决于也可能不取决于 OS);
  • 可能与样式表一起使用的自定义;

颜色可以基于当前调色板的颜色,但每种样式(和OS)以不同的方式使用这些颜色,在某些情况下它们甚至是使用像素图绘制的。

可能用于绘制边框的color roles是:

  • QPalette.WindowText
  • QPalette.Text
  • QPalette.Midlight
  • QPalette.Dark
  • QPalette.Mid
  • QPalette.Shadow

帧宽度可以基于PM_DefaultFrameWidth像素度量,可以通过以下方式查询:

# within an existing QLineEdit instance

opt = QtWidgets.QStyleOptionFrame()
self.initStyleOption(opt)
border = opt.lineWidth

# without a QLineEdit, from any other widget
style = self.style()
# or from the app
opt = QtWidgets.QStyleOptionFrame()
style = QtWidgets.QApplication.style()
border = style.pixelMetric(QtWidgets.QStyle.PM_DefaultFrameWidth, opt)

但是,如上所述,返回的颜色和值可能与实际结果一致,也因为样式可能会做一些调整并添加图形效果,可能increase/decrease可见边框宽度并改变其外观。