Como faço para auto-ajustar o tamanho de um QDialog dependendo do comprimento do texto de um dos seus filhos?

StackOverflow https://stackoverflow.com/questions/1675499

  •  16-09-2019
  •  | 
  •  

Pergunta

Eu tenho um QDialog Eu estou trabalhando com. É feito um pouco como um QMessageBox. Notei que o tamanho do QMessageBox (e do tamanho do seu rótulo) depende do tamanho da mensagem exibida.

Como eu faria o tamanho da minha QDialog ajustar automaticamente como um QMessageBox? Presentemente minha QDialog contém uma caixa de botão e um rótulo, ea QDialog é Disposição vertical.

(Eu sei que eu poderia usar apenas a caixa de mensagem diretamente, mas, eventualmente, eu vou ter diálogos mais complexos.)

Foi útil?

Solução

solução automática:

Use layouts e políticas de tamanho definido para QSizePolicy::Expanding . Em QtDesigner, uma vez que todos os seus filhos são colocados em seu QDialog, em seguida, clique no Ajustar tamanho botão ao lado de layout queridos. Seu QDialog será redimensionada automaticamente em tempo de execução.

solução manual:

A classe QWidget tem um método adjustSize que redimensionar a QWidget para caber seu conteúdo. Basta chamá-lo quando todas as crianças estão definidos.

Outras dicas

Defina o seu diálogo com a expansão, e muito pequeno. Então, certifique-se de definir a sua mensagem antes de mostrar a janela. Quando mostrado, ele vai tentar encontrar seu tamanho adequado, com base no tamanho dos objetos que ele contém. (Isso acontece de forma recursiva, por isso, se o diálogo não é a controladora direta da etiqueta em que você mostra a sua mensagem, certifique-se tudo entre a etiqueta e o diálogo é definida para layouts de uso.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top