А что творит лайаут при ресайзе? А у меня ничего не творит:
C++ (Qt)
#ifndef QSQUAREWIDGET_H
#define QSQUAREWIDGET_H
#include <QFrame>
class QSquareWidget : public QFrame
{
public:
QSquareWidget(QWidget *parent = 0);
protected:
virtual void resizeEvent(QResizeEvent*);
};
#endif // QSQUAREWIDGET_H
C++ (Qt)
#include "QSquareWidget.h"
#include <QResizeEvent>
#include <QDebug>
QSquareWidget::QSquareWidget(QWidget *parent) :
QFrame(parent)
{
setFrameStyle(1);
resize(40, 40);
//setFixedSize(40, 40);
}
void QSquareWidget::resizeEvent(QResizeEvent* event)
{
int lesser = std::min(event->size().width(), event->size().height());
resize(lesser, lesser);
//setFixedSize(lesser,lesser);
}