Une image dans une fenêtre avec barres de défilement.
from gi.repository import Gtk
import sys
class MyWindow(Gtk.ApplicationWindow):
def __init__(self, app):
Gtk.Window.__init__(
self, title="ScrolledWindow Example", application=app)
self.set_default_size(200, 200)
# the scrolledwindow
scrolled_window = Gtk.ScrolledWindow()
scrolled_window.set_border_width(10)
# there is always the scrollbar (otherwise: AUTOMATIC - only if needed
# - or NEVER)
scrolled_window.set_policy(
Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS)
# an image - slightly larger than the window...
image = Gtk.Image()
image.set_from_file("gnome-image.png")
# add the image to the scrolledwindow
scrolled_window.add_with_viewport(image)
# add the scrolledwindow to the window
self.add(scrolled_window)
class MyApplication(Gtk.Application):
def __init__(self):
Gtk.Application.__init__(self)
def do_activate(self):
win = MyWindow(self)
win.show_all()
def do_startup(self):
Gtk.Application.do_startup(self)
app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)
La méthode set_policy(hscrollbar_policy, vscrollbar_policy)
, où chaque argument est l'un des Gtk.Policy.AUTOMATIC, Gtk.Policy.ALWAYS, Gtk.Policy.NEVER
, définit laquelle des barres de défilement verticale ou horizontale doit s'afficher. AUTOMATIC
les affiche seulement si nécessaire, ALWAYS
et NEVER
les affichent respectivement toujours ou jamais.
La méthode add_with_viewport(widget)
est utilisé pour ajouter l'élément graphique Gtk.Widget widget
, sans possibilité de défilement à l'intérieur de la fenêtre.
La méthode set_placement(window_placement)
organise le cadrage du contenu de la fenêtre en fonction de ses barres de défilement. Les options possibles des arguments sont : Gtk.CornerType.TOP_LEFT
(par défaut, les barres de défilement sont en bas et à droite de la fenêtre), Gtk.CornerType.TOP_RIGHT, Gtk.CornerType.BOTTOM_LEFT, Gtk.CornerType.BOTTOM_RIGHT
.
Les méthodes set_hadjustment(ajustement)
et set_vadjustment(ajustement)
définissent l'ajustement
Gtk.Adjustment. C'est la représentation d'une valeur avec une limite inférieure et supérieure, des incréments d'étape et de page, d'une taille de page et est construite sous la forme Gtk.Adjustment(valeur, inferieure, superieure, step_increment, page_increment, page_size)
où les champs sont du type float
. (Notez que step_increment
n'est pas utilisé dans notre exemple et qu'il peut être défini à 0
).
Dans cet exemple, les éléments suivants sont utilisés :
GtkScrolledWindow
Standard Enumerations
GtkImage