Gtk.Layout
Gtk.Layout支持滚动
继承关系
Gtk.Layout是Gtk.Container和Gtk.Scrollable的直接子类
Methods
方法修饰词 | 方法名及参数 |
---|---|
static | new (hadjustment, vadjustment) |
get_bin_window () | |
get_hadjustment () | |
get_size () | |
get_vadjustment () | |
move (child_widget, x, y) | |
put (child_widget, x, y) | |
set_hadjustment (adjustment) | |
set_size (width, height) | |
set_vadjustment (adjustment) |
Virtual Methods
Properties
Name | Type | Flags | Short Description |
---|---|---|---|
height | int | r/w/en | The height of the layout |
width | int | r/w/en | The width of the layout |
Signals
Name | Short Description |
---|
例子
代码:
#!/usr/bin/env python3
# Created by xiaosanyu at 16/7/11
# section 066
#
# author: xiaosanyu
# website: yuxiaosan.tk \
# http://blog.youkuaiyun.com/a87b01c14
# created: 16/7/11
TITLE = "Layout"
DESCRIPTION = """
Gtk.Layout is similar to Gtk.DrawingArea in that it’s a “blank slate” and
doesn’t do anything but paint a blank background by default.
"""
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
HEIGHT = 20
NUM = 100
class LayoutWindow(Gtk.Window):
def __init__(self):
super(LayoutWindow, self).__init__(title="Layout Demo")
self.set_size_request(200, 200)
# va = Gtk.Adjustment(value=0, lower=0, upper=1000, step_increment=1, page_increment=1, page_size=0)
# ha = Gtk.Adjustment(value=0, lower=0, upper=50, step_increment=1, page_increment=2, page_size=1)
# self.layout = Gtk.Layout.new(hadjustment=ha, vadjustment=va)
self.layout = Gtk.Layout.new(None, None)
# important Sets the size of the scrollable area of the layout.
self.layout.set_size(200, NUM * HEIGHT)
# layout.set_size(100, 100)
self.sw = Gtk.ScrolledWindow()
self.sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN)
self.sw.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS)
self.sw.add(self.layout)
for i in range(NUM):
self.layout.put(Gtk.Label("label" + str(i)), 20, HEIGHT * i)
self.add(self.sw)
def main():
win = LayoutWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
if __name__ == "__main__":
main()
代码解析:
最主要的就是这一句
self.layout.set_size(200, NUM * HEIGHT)
要不然不能滚动
代码下载地址:http://download.youkuaiyun.com/detail/a87b01c14/9594728