Название: Фиксированный размер QDialog Отправлено: andrew.k от Ноябрь 14, 2010, 21:48 Как сделать QDialog неизменяемого размера?
Делаю сайзполиси Fixed по высоте и ширине и по-прежнему могу менять размер. Если делать SetFixedSize, то я получаю диалог строго фиксированного размера в пикселах. Это не совсем то, так как шрифт используемый в диалоге может меняться, соответственно, став крупнее он не поместится в текущие рамки заданные в пикселах. Как быть? Название: Re: Фиксированный размер QDialog Отправлено: cya-st от Ноябрь 14, 2010, 22:12 Вызывай динамически setFixedHeight и setFixedWidth в зависимости от размера шрифта, других вариантов я думаю что нет.
Название: Re: Фиксированный размер QDialog Отправлено: andrew.k от Ноябрь 14, 2010, 22:55 в таком случае мне нужно будет определять суммарный размер всех контроллов, которые лежат в диалоге, с учетом их расположения в лэйаутах. А это не тривиально.
Название: Re: Фиксированный размер QDialog Отправлено: kirill от Ноябрь 15, 2010, 08:13 на диалоге есть layout?
Если есть то layout->setSizeConstraint(QLayout::SetFixedSize) Изменять не даст, но и сожмет лэйаут до минимума поэтому может стоит задать setMinimumWidth() Название: Re: Фиксированный размер QDialog Отправлено: GreatSnake от Ноябрь 15, 2010, 09:07 Цитировать в таком случае мне нужно будет определять суммарный размер всех контроллов, которые лежат в диалоге, с учетом их расположения в лэйаутах. А это не тривиально. Всё довольно-таки тривиально.Перед QDialog::show() вызываешь QDialog::adjustSize(), после чего получаешь размер окна диалога и уже полученным размером фиксируешь окно. PS. Иногда перед adjustSize() может потребоваться вызвать QApplication::processEvents(). Название: Re: Фиксированный размер QDialog Отправлено: andrew.k от Ноябрь 15, 2010, 17:58 надо попробовать.
Нашел такой флаг QMSWindowFixedDialogSizeHint он используется у QMessageBox как дефолтное значение виджет флагов. И сам диалог действительно не тянется. Почему может не работать у меня? |