C++ (Qt)void QWidget::resizeEvent ( QResizeEvent * event ){ const QSize& size = event->size (); if (size.height () != size.width ()) resize (size.height (), size.height ());}
void Dialog::resizeEvent(QResizeEvent *e){QSize newSize = e->size();QSize oldSize = e->oldSize();if(!newSize.isValid() || !oldSize.isValid()){ return;}if(newSize == oldSize || newSize == s) { // условие выхода из рекурсии при однаковом новом и старом размере return; // и при полной установки нового размера (ресайз вызывается для каждой стороны)} oldSize.scale(newWidth, newHeight, Qt::KeepAspectRatioByExpanding); s = oldSize;resize(oldSize);}