Я использую Gtk.Image
на фоне GdkPixbuf.Pixbuf
для отображения фотографии. Я масштабирую фотографию, чтобы она соответствовала доступному пространству в ответ на сигнал size-allocate
родительского виджета. Проблема заключается в том, что на дисплеях HiDPI каждое измерение представлено в логических пикселях, а не в пикселях устройства, поэтому происходит одно из следующих действий:
- Если я масштабирую
GdkPixbuf.Pixbuf
до размеров, которые я получаю из сигнала size-allocate
, фотография занимает требуемое физическое пространство, но использует только половину разрешения дисплея (при условии, что пиксель устройства 2: 1 до логическое соотношение пикселей).
- Если я масштабирую
GdkPixbuf.Pixbuf
до get_scale_factor()
, умноженное на размеры, полученные из сигнала size-allocate
, то фотография займет в два раза больше физического пространства (т. Е. Она не будет помещаться в окно).
Как я могу сообщить GTK, что Pixbuf
, который я поставляю на изображение, соответствует пикселям устройства, а не логическим пикселям?