Я работаю над проектом с использованием Python и pyGTK. У меня есть окно, единственной целью которого является показ изображения. Если изображение не слишком велико, чтобы уместиться на экране, в окне по умолчанию не должно быть полос прокрутки.
Так что я делаю что-то вроде этого:
window = gtk.Window()
window.resize(image.size[0], image.size[1])
scrolled = gtk.ScrolledWindow()
scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
scrolled.set_shadow_type(gtk.SHADOW_NONE)
area = gtk.DrawingArea()
area.set_size_request(image.size[0], image.size[1])
window.add(scrolled)
scrolled.add_with_viewport(area)
area.show()
scrolled.show()
window.show()
Но это не совсем работает. Результирующее окно слишком маленькое, и поэтому появляются полосы прокрутки.
Чтобы это работало, я должен поблагодарить вторую строку за это:
window.resize(image.size[0] + 2, image.size[1] + 2)
Но это безобразно и не работает во всех системах. В моем окне Windows я должен использовать + 3.
Что я могу сделать, чтобы убедиться, что окно достаточно велико для изображения?