PyGobject(七十五)Gtk.Widget之Gtk.Scrollbar

本文介绍了一个使用Python和Gtk库创建水平滚动条的示例。通过调整Gtk Scrollbar的属性,可以实现在文本中光标位置的变化。该示例展示了如何创建一个简单的窗口,并在其中添加一个文本视图和一个水平滚动条。
部署运行你感兴趣的模型镜像

Gtk.Scrollbar

Gtk.Scrollbar滚动条,是同Gtk.Scale一样,是Gtk.Range的直接子类
这里写图片描述
这里写图片描述

Methods

方法修饰词方法名及参数
staticnew (orientation, adjustment)

Virtual Methods

Properties

NameTypeFlagsShort Description

Signals

NameShort Description

例子

这里写图片描述
代码:

#!/usr/bin/env python3
# Created by xiaosanyu at 16/7/11
# section 119
# 
# author: xiaosanyu
# website: yuxiaosan.tk \
#          http://blog.youkuaiyun.com/a87b01c14
# created: 16/7/11

TITLE = "Scrollbar"
DESCRIPTION = """
The Gtk.Scrollbar widget is a horizontal or vertical scrollbar,
depending on the value of the Gtk.Orientable :orientation property.
"""

import gi

gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

string = "Try to move the Scrollbar,watch carefully the text cursor changes!!"


class ScrollbarWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title="Scrollbar Demo")
        gird = Gtk.Grid()
        textview = self.create_textview()
        self.buffer = textview.get_buffer()
        gird.attach(textview, 0, 0, 1, 1)
        sb = self.create_scrollbar()
        gird.attach(sb, 0, 1, 1, 1)
        self.add(gird)

    @staticmethod
    def create_textview():
        textview = Gtk.TextView()
        buffer = textview.get_buffer()
        buffer.set_text(string)
        buffer.place_cursor(buffer.get_start_iter())
        return textview

    def create_scrollbar(self):
        ad = Gtk.Adjustment(value=0, lower=0, upper=len(string), step_increment=1, page_increment=1,
                            page_size=0)
        sb = Gtk.Scrollbar(orientation=Gtk.Orientation.HORIZONTAL, adjustment=ad)
        sb.connect("value-changed", self.move)
        return sb

    def move(self, range):
        self.buffer.place_cursor(self.buffer.get_iter_at_offset(int(range.get_value())))
        # print("Move", range.get_value())


def main():
    win = ScrollbarWindow()
    win.connect("delete-event", Gtk.main_quit)
    win.show_all()
    Gtk.main()


if __name__ == "__main__":
    main()





代码下载地址:http://download.youkuaiyun.com/detail/a87b01c14/9594728

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanxiaochengyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值