对pygtk有些感觉了

Python/PHP/Perl 开发与设计
回复
头像
百草谷居士
帖子: 2934
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 17 次
接收感谢: 31 次
联系:

对pygtk有些感觉了

#1

帖子 百草谷居士 » 2010-04-14 20:57

一直对 python + gtk 找不到感觉。
听说王江民在38岁才开始人生的传奇,受到鼓励,于是继续把pygtk看了下去,竟然找到一些感觉。
问题在于这种面向对象的思路和delphi不一样。delphi中的窗体对象包含了窗体上的组件比如按钮,编辑框;而pygtk实例程序中的自定义窗体对象,实际上是一个包含了窗体和窗体上组件的对象,而它本身并不是一个扩展了的窗体对象。而这一切,却是因为看了一段极其简短的实例领悟的。

代码: 全选

w=gtk.Window()
b=gtk.Button()
w.add(b)
w.show_all()
gtk.main()
没有故作高深地自定义对象,平铺直叙地采用了系统对象,多简单多明了。

代码: 全选

F=class
    def __init__():
        self.w=gtk.Window()
        self.b=gtk.Button()
        self.w.add(b)
        self.w.show_all()
    def main():
        gtk.main()

f=F.()
f.main()
:em20 娘西屁,看看着对象搞得多罗嗦!
友帮拓,真难听。有没有接触官方的老大?给改了吧!
一直想找一个在linux下的Visual FoxPro/access桌面数据库。MUIBase还算是最相近的。
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵
送出感谢: 1 次
接收感谢: 6 次

Re: 对pygtk有些感觉了

#2

帖子 wangdu2002 » 2010-04-14 21:06

恭喜居士编程水平长进了。。。听Photor讲,Dephi也有新的一个开源变种滴。。。 :em06
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
leeaman
帖子: 30702
注册时间: 2007-02-02 18:14
系统: debian sid
送出感谢: 1 次
接收感谢: 23 次

Re: 对pygtk有些感觉了

#3

帖子 leeaman » 2010-04-14 21:09

呵呵,个人觉得还不错,不过没有找到比较好的编辑器,二是控件属性的参考资料没有找到
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)
头像
百草谷居士
帖子: 2934
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 17 次
接收感谢: 31 次
联系:

Re: 对pygtk有些感觉了

#4

帖子 百草谷居士 » 2010-04-14 21:10

wangdu2002 写了:恭喜居士编程水平长进了。。。听Photor讲,Dephi也有新的一个开源变种滴。。。 :em06
那个就叫lazarus,可惜无法在IDE输入中文,必须把文件存盘然后使用其他文本编辑器打开把里面需要中文的地方改过来,其实也不算很麻烦。
友帮拓,真难听。有没有接触官方的老大?给改了吧!
一直想找一个在linux下的Visual FoxPro/access桌面数据库。MUIBase还算是最相近的。
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵
送出感谢: 1 次
接收感谢: 6 次

Re: 对pygtk有些感觉了

#5

帖子 wangdu2002 » 2010-04-14 21:24

呵呵,Dekphi早忘光了。。。某决定以后学Qt。。。Qt的类库,界面设计QtDesign和IDE环境QtCreator都不错,资料也比Gtk的好找多了。。。 :em06
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
leeaman
帖子: 30702
注册时间: 2007-02-02 18:14
系统: debian sid
送出感谢: 1 次
接收感谢: 23 次

Re: 对pygtk有些感觉了

#6

帖子 leeaman » 2010-04-14 21:32

我最爱是delphi~~~
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)
头像
百草谷居士
帖子: 2934
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 17 次
接收感谢: 31 次
联系:

Re: 对pygtk有些感觉了

#7

帖子 百草谷居士 » 2011-03-13 19:29

按照delphi的窗体构建思路,重新写了这个程序。

代码: 全选

# coding:utf-8

import pygtk
pygtk.require20
import gtk

class F (gtk.Window):
    b=gtk.Button('面向对象的按钮')
    def __init__(self,title):
        gtk.Window.__init__(self)
#        gtk.Window.set_title(title)
        self.set_title(title)
        self.add(self.b)
        self.connect('destroy',lambda q:gtk.main_quit())
        self.show_all()
        
    def main(self):
        gtk.main()
        
f=F('来个OO')
f.main()
与首贴中第二个例子中的主要区别在于,首贴中按钮b的定义在窗体类构建方法__init__()内定义的,而这是在窗体构建方法外定义。
按照一般OO的逻辑,对象b如果是在方法__init()__内定义的,那么在方法__init()__外是无法访问。不过奇怪的是在pygtk中,依然可以访问这个在__init()__内定义的对象。
希望哪位朋友给指点迷津。

二是类F指明了是从gtk.Window类中继承过来的,而首贴中的例子F是个基本类,window作为F类的属性存在。此例中F本身就是一个窗口类。这正是DELPHI窗体的构建模式。
友帮拓,真难听。有没有接触官方的老大?给改了吧!
一直想找一个在linux下的Visual FoxPro/access桌面数据库。MUIBase还算是最相近的。
头像
百草谷居士
帖子: 2934
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 17 次
接收感谢: 31 次
联系:

Re: 对pygtk有些感觉了

#8

帖子 百草谷居士 » 2011-03-13 20:00

代码: 全选

# coding:utf-8

import pygtk
pygtk.require20
import gtk

w=gtk.Window()
w.set_title('按钮的事件驱动')
w.set_default_size(500,100)
w.connect('destroy',lambda q:gtk.main_quit())

hb=gtk.HBox(False,20)

b1=gtk.Button('点击我')
def onb1(self):
    b2.set_label('退出')
#    b1.set_label(
b1.connect('clicked',onb1)

b2=gtk.Button('点击我')

def onb2(self):
    gtk.main_quit()
b2.connect('clicked',onb2)

hb.pack_start(b1)
hb.pack_start(b2)

w.add(hb)
w.show_all()

gtk.main()
又是一个例子,对python中对象变量的作用范围不清楚。比如这个例子中函数onb1使用了对象变量b2,而这个对象变量并没有在onb1函数中定义,而且在函数onb1定义之前的语句也没有出现,是在onb1函数之后出现的。但是却可以在函数onb1中使用,真是奇怪极了,搞不懂。 :em20
友帮拓,真难听。有没有接触官方的老大?给改了吧!
一直想找一个在linux下的Visual FoxPro/access桌面数据库。MUIBase还算是最相近的。
回复

回到 “Python/Php/Perl”