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

本文介绍如何使用 Gtk.Layout 创建可滚动的布局区域,并通过 Python 示例代码演示如何设置布局大小以实现滚动条的显示。
3581

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



