当焦点出现在QTool按钮上时,如何调整QToolButton的大小

How to resize the QToolButton when focus is coming on that QToolButton

本文关键字:调整 何调整 QToolButton 焦点 QTool 按钮      更新时间:2023-10-16

当焦点集中在该QToolButton.上时,如何调整QToolButton的大小我有 5 QToolButton,当焦点在第二个QToolButton时,它的大小应该会自动增加。怎么会这样?

你必须创建一个自定义类,子类化QToolButton。

class MyButton : public QToolButton
{
    Q_OBJECT 
    private:
         int originalWidth, originalHeight;
         int bigWidth, bigHeight;
};

然后重新实现 focusInEvent 和 out。

void focusInEvent ( QFocusEvent * event ) { 
                   resize(bigWidth,bigHeight); 
                   QToolButton::focusInEvent(event); // Don't forget to call parent focus in / out in order to make the "hover" effect work. 
}
void focusOutEvent ( QFocusEvent * event ) { 
                   resize(originalWidth,originalHeight); 
                   QToolButton::focusOutEvent(event);
}

干杯。

也可以通过QSS:

#MySecondButton:focus
{
  width: 300px;
  height: 200px;
}

根据布局和大小策略,可能需要设置"最大宽度"/"最大高度"/"最小宽度"等属性。