Как мне добавить цвет к этому и сделать его лучше для пользователя? - PullRequest
0 голосов
/ 07 марта 2011

Я могу добавить поля и таблицы

Также не работает кнопка «Выйти», может кто-то отредактировать эту часть кода, пожалуйста

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 голосов
/ 07 марта 2011

Кнопка «выход» не работает, потому что вы подключили сигнал «уничтожить» к кнопке вместо сигнала щелчка

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)

Следуйте этому учебнику , чтобы узнать больше об атрибутах панго.

...