#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pygtk
pygtk.require('2.0')
import gtk
class RulersExample:
XSIZE = 400
YSIZE = 400
xpos=0.0
ypos=0.0
# This routine gets control when the close button is clicked
def close_application(self, widget, event, data=None):
gtk.main_quit()
return False
def __init__(self):
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("delete_event", self.close_application)
window.set_border_width(10)
# Create a table for placing the ruler and the drawing area
table = gtk.Table(3, 2, False)
window.add(table)
area = gtk.DrawingArea()
area.set_size_request(self.XSIZE, self.YSIZE)
table.attach(area, 1, 2, 1, 2,
gtk.EXPAND|gtk.FILL, gtk.FILL, 0, 0 )
area.set_events(gtk.gdk.POINTER_MOTION_MASK |
gtk.gdk.POINTER_MOTION_HINT_MASK )
def vmotion_notify(ruler, event):
self.ypos=ruler.get_range()[2]
print "(%f,%f)"%(self.xpos,self.ypos)
return ruler.emit("motion_notify_event", event)
def hmotion_notify(ruler, event):
self.xpos=ruler.get_range()[2]
print "(%f,%f)"%(self.xpos,self.ypos)
return ruler.emit("motion_notify_event", event)
# The horizontal ruler goes on top. As the mouse moves across the
# drawing area, a motion_notify_event is passed to the
# appropriate event handler for the ruler.
hrule = gtk.HRuler()
hrule.set_metric(gtk.PIXELS)
hrule.set_range(7, 13, 0, 20)
#当mouse指针在前面定义的drawingarea移动时,motion_notify_event信号 被关联到motion_notify处理器
#通常对象为widget时,connect_object()允许处理仅使用一个参数或2个参数的回调函数
area.connect_object("motion_notify_event", hmotion_notify, hrule)
table.attach(hrule, 1, 2, 0, 1,
gtk.EXPAND|gtk.SHRINK|gtk.FILL, gtk.FILL, 0, 0 )
# The vertical ruler goes on the left. As the mouse moves across
# the drawing area, a motion_notify_event is passed to the
# appropriate event handler for the ruler.
vrule = gtk.VRuler()
vrule.set_metric(gtk.PIXELS)
vrule.set_range(0, self.YSIZE, 10, self.YSIZE)
area.connect_object("motion_notify_event", vmotion_notify, vrule)
table.attach(vrule, 0, 1, 1, 2,
gtk.FILL, gtk.EXPAND|gtk.SHRINK|gtk.FILL, 0, 0 )
# Now show everything
area.show()
hrule.show()
vrule.show()
table.show()
window.show()
def main():
gtk.main()
return 0
if __name__ == "__main__":
RulersExample()
main()
- 大小: 12.1 KB
- 大小: 52.1 KB
分享到:
相关推荐
pygtk-all-in-one-2.24.0.win32-py2.7.part2
pygtk-all-in-one-2.24.0.win32-py2.7.part1.rar
标题中的"pygtk-all-in-one-2.24.1.win32-py2.7.rar"表明这是一个针对Python 2.7版本的PyGTK库的集成包,版本号为2.24.1,且是Windows 32位系统的版本。PyGTK是一个用于创建图形用户界面(GUI)的Python绑定库,它...
带pyobject,cario\gtk+底层库,三合一
pygtk-2.17.0 参考手册英文版,由快乐叶子(http://www.yeezi.org)根据官方文档整理
在"pygtk-examples.tar.gz"这个压缩包中,包含了一系列的PyGTK编程示例,这些例子是学习PyGTK和Python GUI编程的宝贵资源。通过这些实例,你可以了解如何利用PyGTK的各种组件和功能来构建交互式的应用程序。 1. **...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl...
官方离线安装包,亲测可用
pygtk-2.15.2 最新 PyGTK lets you to easily create programs with a graphical user interface using the Python programming language. The underlying GTK+ library provides all kind of visual elements and ...
python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
pygtk-webui 介绍 这是一个检查 Gtk 和 webkit 之间交互的示例。 webkit 端显示一个带有 d3.js 生成的随机值的条形图,Gtk 部分显示一个带有这些值的树视图。 功能 本例提供的功能如下: 随机数据按钮:当点击随机...
然后,可以下载sane-pyGTK的源码包(如`sane-pygtk-0.1.1`),解压后按照README文件的指示进行编译和安装。安装完成后,通过命令行或者桌面快捷方式启动应用,开始使用扫描功能。 **社区参与与持续发展** 作为开源...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
PyGTK 2.0 Tutorial - John Finlay, pygtk2-tut
- **尺子控件**:介绍尺子控件(Ruler)的功能和使用场景。 - **状态栏**:讲解状态栏(Statusbar)的使用方法,以及如何显示消息和进度指示。 - **文本输入控件**:探讨文本输入框(TextEntry)的创建及使用技巧,...
python GTK2.0的中文版库函数说明及例程,无解压密码,
PyGtk发布Linux的开源会计和业务管理系统。 用Python3,Gtk3和PostgreSQL 10编写。希望替代Quickbooks和Peachtree。 您可以在找到一些屏幕截图。 您可以通过gmail dot com与我联系pygtk点发布这是一个开放的,由用户...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装