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 родительского (при условии, что содержимое второго столбца может увеличиться).