Qt 从QStyle更改小部件的大小

Qt 从QStyle更改小部件的大小,qt,qt4.7,Qt,Qt4.7,我正在写一个QStyle这里我正在将QProgressBar更改为一条细长的单行,没有文本。所以高度也会降低到5px。但是,窗口小部件的宽度将由布局决定。我应该如何在我的风格 DuffFrime/Copy>中改变窗口小部件的高度?< /P> < P>我从来没有真正编写过 qStys。但是如果你想在代码> RoGuangs中调整任何内容,我会觉得奇怪。我可能在这个问题上错了,因为快速查看文档似乎会建议您重写并返回一个基于当前宽度和首选高度的rect。我假设这将由布局活动调用,并将在调用drawCo

我正在写一个
QStyle
这里我正在将QProgressBar更改为一条细长的单行,没有文本。所以高度也会降低到5px。但是,窗口小部件的宽度将由布局决定。我应该如何在我的风格<代码> DuffFrime/Copy>中改变窗口小部件的高度?< /P> < P>我从来没有真正编写过<代码> qStys。但是如果你想在代码> RoGuangs中调整任何内容,我会觉得奇怪。我可能在这个问题上错了,因为快速查看文档似乎会建议您重写并返回一个基于当前宽度和首选高度的rect。我假设这将由布局活动调用,并将在调用
drawControl
时进行排序。

是否需要固定小部件的高度?或者只是绘制的高度永远不会超过5像素?首先,在polish函数上设置高度和调整大小策略。对于第二个,在QStyle中替代图形,使其仅使用5个像素。绘制图形的函数通常采用矩形;如果正确重写了相应的函数,则可以使用修改后的rect调用基类的draw。不幸的是,我已经多年没有做过任何QStyle工作了,所以我不确定这些函数到底是什么。

我已经在所有3个ProgressBar相关的子元素Case
SE_ProgressBarRoove
SE_ProgressBarContents
SE_ProgressBarLabel
中进行了尝试。我返回了一个高度为5px、宽度相同的rect。这是行不通的。没变,还是原来的样子。对不起,没用。希望会出现更多的建议。因此,在进度条小部件上设置最大高度5不起作用吗?我尝试过覆盖
polish(QWidget*widget)
,但是
widget->setGeometry(rect)
都不起作用。我认为,简单地调用setMaximumWidth(5pixels)和setMinimumWidth会容易得多(5像素)将宽度限制为5像素,无论布局如何。