我想通过使QProgressBar变得瘦来定制它的外观。有一个可用的setMaximumHeight()方法。但不幸的是,剪裁(或剪辑)的高度,进度栏,使它看起来很奇怪。相反,我宁愿纵向地挤压或缩放它。在OSX平台上,裁剪问题尤为突出。图示如下:

发布于 2014-07-23 04:51:06
如果样式是由运行Qt的平台完成的,这是不容易完成的。在Windows和OS上,小部件的样式实际上都是由平台API呈现的。原语的大小由用户选择的样式设置(当然,在用户可选择的范围内)。
一个简单的解决方法是覆盖平台样式。您可以通过在小部件上设置一个非空样式表来做到这一点。由于样式表只对Qt有意义,而且平台风格的API不知道如何处理它们,所以一个非空样式表完全禁用给定小部件的平台样式。你从一种非常稀疏的Qt提供的风格开始。这就放松了固定平台的特定尺寸。当然,您必须提供一个特定于平台的样式表,以近似控件的本机外观--只是现在您可以根据您的喜好来调整控件的大小。
当然,您可以对控件的图像进行缩放。您需要将小部件render()到像素地图或图像上,然后缩放它,并使用它来呈现目标小部件。您需要为此编写一个包装小部件。除了大小限制之外,包装器需要使自己“看起来”与包装的小部件完全一样。这将需要转发事件,大小和大小限制(与期望的改变),油漆管理等。
https://stackoverflow.com/questions/24901208
复制相似问题