PyGTK: Wie kann ich ein Bild automatisch skalieren, um es an das übergeordnete Widget anzupassen?

8

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?

    
Zaz 21.02.2011, 14:46
quelle

3 Antworten

9

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:

Jong Bor Lee 21.02.2011, 17:22
quelle
0

Hier eine kleine Snippet-Klasse, mit der Sie ein automatisch skaliertes Bild verwenden können.

%Vor%

Und kleines Anwendungsbeispiel:

%Vor%     
MadisonTrash 23.07.2015 19:51
quelle
0

Hier ist eine Ausnahme, die diese Aufgabe in einem Zeichnungsbereich erfüllt:

%Vor%     
ThorSummoner 29.09.2015 07:21
quelle

Tags und Links