Gtk.Viewport
Gtk.Viewport滚动适配器。如果一个部件自带有滚动能力,如Gtk.TextView, Gtk.TreeView, Gtk.IconView, 他们可以通过Gtk.Container.add()方法添加到Gtk.ScrolledWindow中;如果部件没有自带的滚动能力,如Gtk.Grid, Gtk.Box等,如果他们需要滚动,则必须先添加到Gtk.Viewport中,然后再添加到Gtk.ScrolledWindow中。
不过如果一个没有实现Gtk.Scrollable的部件通过Gtk.Container.add()方法添加到Gtk.ScrolledWindow中,会自动先将其添加到Gtk.Viewport中。所以你可以忽略Gtk.Viewport的存在
继承关系
Gtk.Viewport是Gtk.Bin和Gtk.Scrollable的直接子类
Methods
| 方法修饰词 | 方法名及参数 |
|---|---|
| static | new (hadjustment, vadjustment) |
| get_bin_window () | |
| get_hadjustment () | |
| get_shadow_type () | |
| get_vadjustment () | |
| get_view_window () | |
| set_hadjustment (adjustment) | |
| set_shadow_type (type) | |
| set_vadjustment (adjustment) |
Virtual Methods
Properties
| Name | Type | Flags | Short Description |
|---|---|---|---|
| shadow-type | Gtk.ShadowType | r/w/en | Determines how the shadowed box around the viewport is drawn |
Signals
| Name | Short Description |
|---|
例子
代码:
#!/usr/bin/env python3
# Created by xiaosanyu at 16/7/7
# section 057
TITLE = "Viewport"
DESCRIPTION = """
The Gtk.Viewport widget acts as an adaptor class, implementing scrollability for child widgets
that lack their own scrolling capabilities.
Use Gtk.Viewport to scroll child widgets such as Gtk.Grid, Gtk.Box, and so on
"""
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gio, GLib
class ViewportWindow(Gtk.Window):
def __init__(self, *args, **kwargs):
Gtk.Window.__init__(self, title="Viewport Demo")
self.set_default_size(100, 200)
sw = Gtk.ScrolledWindow()
sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN)
sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
viewport = Gtk.Viewport()
box = Gtk.VBox()
viewport.add(box)
sw.add(viewport)
for i in range(100):
box.add(Gtk.Button("Button" + str(i)))
self.add(sw)
def main():
win = ViewportWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
if __name__ == "__main__":
main()
代码解析:
将100个Button放到VBox当中,然后将box添加到Viewport当中,在将Viewport添加到ScrolledWindow当中,实现滚动。
代码下载地址:http://download.youkuaiyun.com/detail/a87b01c14/9594728

本文介绍Gtk.Viewport组件的使用方法,解释如何为不自带滚动功能的部件如Gtk.Grid和Gtk.Box提供滚动支持。通过示例代码展示如何创建含有100个按钮的可滚动区域。
3136

被折叠的 条评论
为什么被折叠?



