Я хочу разместить изображение в моем графическом интерфейсе Qt. Проблема, которую я испытываю, - это масштабирование изображения после его загрузки - оно, по-видимому, уменьшено. Это происходит из-за ошибки в процедуре fitInView()
, которая вызывается для соответствия изображению данному размеру окна. В частности, в моем повторной реализации в fitInView()
есть следующая строка:Размер видового экрана Qt неправильный
viewrect = self.viewport().rect()
viewport().rect()
возвращает неверные результаты, потому что изображение не было показано ранее, и что заставляет виджет иметь «фиктивные размеры», как было указано в this forum thread.
Возможные решения, которые я нашел, в основном согласуются друг с другом в одном - нужно выполнить процедуру showEvent()
, которая будет звонить fitInView()
; таким образом, изображение будет иметь время для правильной загрузки, а виджет просмотра виджета будет установлен на правильное значение. Я попробовал:
def showEvent(self, event):
self.fitInView()
Эта функция вызывается после того, как я выбираю изображение, которое я хочу, чтобы загрузить и вызвать self.show()
, чтобы показать, что изображение. Однако реализация showEvent()
не решила проблему. Кто-нибудь сталкивался с этим вопросом раньше?