我需要为QWidget设置sizepolicy,以便在布局中调整大小时,小部件的宽度始终是6的倍数(宽度=6,12,18,24,30,36…),高度始终是4的倍数。我该怎么做?
您需要处理小部件的调整大小事件。要么对小部件进行子类化并重新实现resizeEvent
方法,要么为小部件安装一个事件过滤器。在调整大小事件处理程序中,检查当前大小并在必要时进行更正:
QSize size = widget->size();
size.setWidth(qRound(size.width() / 6) * 6);
size.setHeight(qRound(size.height() / 4) * 4);
if (size != widget->size()) {
widget->resize(size);
}