...setFixedSize(...) => размеры в пикселях!!!, а они не всегда квадратные, с такими проблемами сталкиваются когда например на любом устройстве (на разных) нужно рисовать в своих условных единицах (пр. мм):
C++ (Qt)
// добавил в конструктор
// те размеры которые тебе нужны (в мм)
double newWidth = 100;
double newHeight = 100;
QDesktopWidget dw;
QWidget* w = dw.screen();
// размеры устройства
double dmWidth = w->width();
double dmHeight = w->height();
double dmWidthMM = w->widthMM();
double dmHeightMM = w->heightMM();
qDebug() << dmWidth;
qDebug() << dmHeight;
qDebug() << dmWidthMM;
qDebug() << dmHeightMM;
// разрешение (по высоте и ширине возможно разное)
double resolutionWidth = dmWidthMM / dmWidth;
double resolutionHeight = dmHeightMM / dmHeight;
qDebug() << resolutionWidth;
qDebug() << resolutionHeight;
// новые размеры в пикселях
newWidth /= resolutionWidth;
newHeight /= resolutionHeight;
qDebug() << newWidth;
qDebug() << newHeight;
setFixedSize(newWidth, newHeight);
..размер окна у тебя всегда будет фиксированный, если переопределить QWidget::resizeEvent( QResizeEvent * event ) и там таким же способом вычислять размер, то окно у тебя будет растягиваться визуально "квадратно" на любом мониторе.