文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PyGtk之Fixed Container介绍

PyGtk之Fixed Container介绍

时间:2008-11-12  来源:适兕

也许程序就是这样,需要日积月累的熟悉语言的语法、内在API、数据结构以及优良的算法,然后才可以去解决实际问题,才可以谈创造力,否则就是空想了。正如我以前一直希望自己写程序、能够进入计算机世界,也就这样一直的在窥探,努力去看到本质。
今天要讲解的是pygtk中的一个小的容器--可实现动态调整位置。这就是fixed container,并通过解析pygtk tut上的一个例子去理解其功能,当然能举一反三是最好的了。
 我们追溯到GTK+中的解释:
The GtkFixed widget is a type of layout container that allows you to place widgets by the pixel.
而Pygtk中是这样说的:
The Fixed container allows you to place widgets at a fixed position within it’s window,
 relative to it’s upper left hand corner. The position of the widgets can be changed dynamically.
不管英语怎么说,也就是说只要我们在一个窗口中实现一个fixed容器就可以动态的调整这个容器中的widget,而具体的就是利用屏幕的x,y座标。
用法很简单:仅有三个相关的调用
fixed = gtk.Fixed()
fixed.put(widget, x, y)
fixed.move(widget, x, y)
The function gtk.Fixed() allows you to create a new Fixed container.  建立容器前的类的申明。
The put() method places widget in the container fixed at the position specified by x and y. 初始化的位置。
The move() method allows the specified widget to be moved to a new position.  相当于偏移量,呵呵。

让我们看下面的例子:(例子来源于pygtk的教程)
#!/usr/bin/env python
import pygtk
pygtk.require20
import gtk

class FixedExample:
    def move_button(self,widget):
        self.x = (self.x+60)%500  //不错的循环方式,值得学习。
        self.y = (self.y+50)%500
        self.fixed.move(widget,self.x,self.y)  //当接收到按钮的信号时,按钮移动到指定位置当计算结果大于500取余,则来次循环。
    def __init__(self):
        self.x = 80
        self.y = 80
        window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        window.set_title("hello fixed")
        window.connect("destroy",lambda w: gtk.main_quit())
        window.set_border_width(10)
        self.fixed = gtk.Fixed() //初始化
        window.add(self.fixed)
        self.fixed.show()
        for i in range(1,10)://一共建了9个按钮
            button = gtk.Button("touch me!!")
            button.connect("clicked",self.move_button)
            self.fixed.put(button,i*100,100) //将按钮放在横坐标为1*100,纵座标为100,
            button.show()
        window.show()

def main():
    gtk.main()
    return 0

if __name__ == "__main__":
    FixedExample()
    main()

看两张截图:
1、最初的:

2、点击了n次之后。

有兴趣的可以试验下其它的widget。
相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载