Qual é o idioma comum para redimensionar um widget com uma imagem grande no Qt?
Isso pode parecer otimização prematura, mas quero entender o que acontece por dentro e como isso geralmente é programado usando a biblioteca Qt.
Imagine um aplicativo que produz constantemente uma imagem que preenche toda a janela, por exemplo um renderizador em tempo real 3D. (Um editor de fotos parece não ter esse problema, pois visa preservar o tamanho da imagem de saída, adicionando barras de rolagem quando a imagem não se encaixa.) Obviamente, a imagem de saída (buffer) deve ser redimensionada quando a janela é redimensionada .
Agora, no Qt, parece não haver maneira de redimensionar umQImage
, em vez disso, é necessário desalocar a imagem atual e alocar uma nova. Uma imagem com resolução de 1280x1024 e 3 canais de 8 bits ocupa 3,75 Mb. Os eventos de redimensionamento chegam (eu testei isso) com muita frequência, ou seja, a cada poucos pixels do canto do movimento da janela (que está usando o Qt5 no X11 no Linux de 64 bits). Portanto, as perguntas:
QTimer
com um tempo limite de 100-200 ms para aguardar que os eventos de redimensionamento parem de fluir em uma boa idéia?Familiarizado com a possível resposta de "a máquina vai lidar com isso muito bem", mas se eu a tratasse dessa maneira, consideraria-me um programador analfabeto. Independentemente de quão fortes sejam os hoje em dia, eu gostaria de entender como isso funciona.