Решил разобраться в тонкостях вывода QWidget. Экспериментирую с подсказкой о размере
QPushButton* pushButton1 = new QPushButton("Button 1");
QPushButton* pushButton2 = new QPushButton("Button 2 - long text");
qDebug()<< pushButton1->sizeHint();//QSize(75, 23)
qDebug()<< pushButton2->sizeHint();//QSize(104, 23)
pushButton1->show();
pushButton2->show();
qDebug()<<pushButton1->sizePolicy().verticalPolicy();//0
qDebug()<<pushButton1->sizePolicy().horizontalPolicy();//1
pushButton1->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
qDebug()<<pushButton1->sizePolicy().verticalPolicy();//0
qDebug()<<pushButton1->sizePolicy().horizontalPolicy();//0-OK
По умолчанию высота кнопки фиксированная, а ширина - минимальное значение, т.е. её можно растягивать.
Например, я хочу установить и фиксированную высоту, и фиксированную ширину - чтобы значения sizeHint() интерпретировались напрямую.
Политику размера изменил, однако она не работает - кнопки всё равно показываются одинакового размера, хотя ширина QSize для второй явно больше. Кроме того, их ещё можно растягивать курсором мыши, хотя политика Fixed....