重要提示:我使用PyGObject来访问GTK小部件,而不是PyGTK。这就是这个问题不同于类似问题的原因:
我想做一个非常简单的应用程序,显示一个标签,一个图像和一个按钮,所有的堆叠在一起。应用程序应该在全屏模式下运行。在
当我尝试的时候,我遇到了一个问题。我的图像分辨率很高,所以当我简单地从文件中创建并添加它时,我几乎看不到它的20%。在
我想要的是根据窗口的大小按宽度缩放此图像(这等于应用程序全屏运行时的屏幕大小)。在
我尝试过使用Pixbufs,但是调用scale_simple似乎没有太大改变。在
以下是我当前的代码:import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GdkPixbuf
class Window(Gtk.Window):
def __init__(self):
super().__init__(title='My app')
layout = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
dimensions = layout.get_allocation()
pixbuf = GdkPixbuf.Pixbuf.new_from_file('path/to/image')
pixbuf.scale_simple(dimensions.width, dimensions.height, GdkPixbuf.InterpType.BILINEAR)
image = Gtk.Image.new_from_pixbuf(pixbuf)
dismiss_btn = Gtk.Button(label='Button')
dismiss_btn.connect('clicked', Gtk.main_quit)
layout.add(image)
layout.add(dismiss_btn)
self.add(layout)
win = Window()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()