Ich habe eine PyGTK-App, die ein Bild unbekannter Größe laden muss, aber ich habe das Problem, dass das Fensterlayout verzerrt und schwer zu verwenden ist, wenn das Bild entweder sehr groß oder sehr klein ist. Ich brauche eine Möglichkeit, das Bild automatisch so skalieren zu lassen, dass es zum übergeordneten Widget passt. Nach einigen Recherchen scheint es leider keinen Code zu geben, weder eingebaut noch sonstwie, der das macht, wonach ich suche.
Wie könnte ich etwas schreiben, um das zu tun? Ich hätte gedacht, dass jemand dafür schon einen Code geschrieben hätte; Gibt es etwas, das ich vermisst habe?
Sie können widget.get_allocation () verwenden, um die Größe des übergeordneten Widgets und pixbuf.scale_simple zu ermitteln, um das Bild wie folgt zu skalieren:
%Vor%Wenn das Bild bei jeder Größenänderung des Fensters skaliert werden soll, müssen Sie den Code (oder etwas Ähnliches, um jedes Mal das Bild von der Festplatte zu laden) in eine mit dem size_allocate-Signal verbundene Funktion einfügen das übergeordnete Widget Stellen Sie sicher, dass das Bild, das Sie in das Widget einfügen, seine Größe nicht erneut ändert, um Endlosschleifen zu vermeiden.
Referenzen:
Hier eine kleine Snippet-Klasse, mit der Sie ein automatisch skaliertes Bild verwenden können.
%Vor%Und kleines Anwendungsbeispiel:
%Vor%Hier ist eine Ausnahme, die diese Aufgabe in einem Zeichnungsbereich erfüllt:
%Vor%