QWidget sizeHint()

Я переопределил (перегружен) sizeHint() функция в индивидуальном QPushButton класс как это:

QSize CustQPushButton::sizeHint()const         
{
   QWidget *parentWindow=this->parentWidget(); //a pointer to the parent window   
  return QSize(parentWindow->width()/10,60);
}

проблема в:

Когда окно первоначально отображается, ширина моих кнопок соответствует ожидаемой (1/10 размера окна), но когда размер окна изменяется, размер кнопок не изменяется пропорционально окну (родительскому элементу). CustQPushButton Политика размера установлена ​​в Fixed/Fixed и мои созданные кнопки находятся внутри QGridLayout.

Может кто-нибудь, пожалуйста, помогите мне?

1 ответ

Решение

Вам не нужны пользовательские классы для такой тривиальной вещи. Назначение подсказки по размеру совершенно иное. Макеты по умолчанию могут обрабатывать 1/10 ширины. Вы должны использовать QGridLayout::setColumnStretch функция. Например, если установить коэффициенты растяжения для двух столбцов равными 1 и 9, размер первого столбца изменится на 1/10 родительского (при условии, что содержимое второго столбца может увеличиться).

Другие вопросы по тегам