Ошибка компиляции возникает из-за того, что вы пытаетесь передать QSizePolicy::Policy
в setSizePolicy(QSizePolicy)
, но нет неявного преобразования из QSizePolicy::Policy
(что является политикой для одного измерения) в QSizePolicy
(это класс содержащий, помимо прочего, один Policy
на измерение (высота, ширина)). QSizePolicy
все равно не работает с виджетами (окнами) верхнего уровня.
setFixedSize()
работает только в том случае, если вы заранее знаете размер диалогового окна (и обычно этого не происходит, как при изменении размеров шрифта и языков). Вы можете сделать
window()->setFixedSize( window()->sizeHint() );
но гораздо лучше использовать
window->layout()->setSizeConstraint( QLayout::SetFixedSize );
Это позволяет макету определять размер диалогового окна, но не позволяет изменять размер, что, как я полагаю, является тем, о чем вы просили.