您的位置:首页 > 移动开发 > Objective-C

PyGobject(四十)布局容器之Viewport

2016-07-30 10:10 295 查看
GtkViewport
继承关系

Methods

Virtual Methods

Properties

Signals

例子

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

方法修饰词方法名及参数
staticnew (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

NameTypeFlagsShort Description
shadow-typeGtk.ShadowTyper/w/enDetermines how the shadowed box around the viewport is drawn

Signals

NameShort 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.csdn.net/detail/a87b01c14/9594728
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息