如何为此添加颜色并使其对用户更好看?

时间:2011-03-07 16:52:20

标签: python gtk edit pretty-print

我可以添加框和表

Quit按钮也不起作用,有人可以编辑那部分代码

import gtk

class helloworld:

        def close(self,widget): 
                print "I'm outta here" 
                gtk.main_quit()

        def printit(self,widget,lab1): 
                print lab1.get_text() 

        def filllab(self,widget,lab1): 
                lab1.set_text(widget.get_text()) 

        def __init__(self): 
                window = gtk.Window() 
                window.set_size_request(300,400) 
                vbox = gtk.VBox() 
                window.add(vbox)

                lab1 = gtk.Label("shazbut")

                # entry widget 
                ent1 = gtk.Entry() 
                ent1.connect("activate",self.filllab,lab1)

                # quit 
                quitb = gtk.Button("quit",gtk.STOCK_QUIT) 
                quitb.set_size_request(50,100) 
                quitb.connect("destroy", gtk.main_quit)

                printb = gtk.Button("print") 
                printb.connect("clicked",self.printit,lab1) 

                # Pack widgets in the vbox 
                vbox.add(ent1) 
                vbox.add(lab1) 
                vbox.add(quitb) 
                vbox.add(printb)

                window.show_all()

helloworld() 
gtk.main()

1 个答案:

答案 0 :(得分:0)

“退出”按钮不起作用,因为您将“销毁”信号连接到按钮而不是点击信号

quitb.connect("clicked", gtk.main_quit)

此外,您忘记连接窗口销毁事件(因此当您单击窗口关闭按钮时程序将永远不会退出)。添加

window.connect("destroy", gtk.main_quit)

要更改标签属性,请使用pango属性

def _add_attributes_to_label(self,label):
        attr = pango.AttrList()

        fg_color = pango.AttrForeground(65535, 0, 0,0,-1)
        strike = pango.AttrStrikethrough(True,0,-1)
        size = pango.AttrSize(30000, 0, -1)

        attr.insert(fg_color)
        attr.insert(size)
        attr.insert(strike)

        label.set_attributes(attr)

init 函数中调用上一个函数,如下所示:

self._add_attributes_to_label(lab1)

按照此tutorial了解有关pango属性的更多信息。