代码之家  ›  专栏  ›  技术社区  ›  Jan Tojnar

PYGTK条目占位符

  •  3
  • Jan Tojnar  · 技术社区  · 16 年前

    如何在HTML5输入元素中创建带有占位符的pygtk条目?

    3 回复  |  直到 13 年前
        1
  •  10
  •   mg.    16 年前

    如果代码满足您的需要,请尝试此代码:

    import gtk
    
    
    class PlaceholderEntry(gtk.Entry):
    
        placeholder = 'Username'
        _default = True
    
        def __init__(self, *args, **kwds):
            gtk.Entry.__init__(self, *args, **kwds)
            self.connect('focus-in-event', self._focus_in_event)
            self.connect('focus-out-event', self._focus_out_event)
    
        def _focus_in_event(self, widget, event):
            if self._default:
                self.set_text('')
                self.modify_text(gtk.STATE_NORMAL, gtk.gdk.color_parse('black'))
    
        def _focus_out_event(self, widget, event):
            if gtk.Entry.get_text(self) == '':
                self.set_text(self.placeholder)
                self.modify_text(gtk.STATE_NORMAL, gtk.gdk.color_parse('gray'))
                self._default = True
            else:
                self._default = False
    
        def get_text(self):
            if self._default:
                return ''
            return gtk.Entry.get_text(self)
    
    
    if __name__ == '__main__':
        w = gtk.Window()
        vbox = gtk.VBox()
        w.add(vbox)
        vbox.pack_start(PlaceholderEntry())
        quitbtn = gtk.Button(stock=gtk.STOCK_QUIT)
        quitbtn.connect('clicked', gtk.main_quit)
        vbox.pack_start(quitbtn)
        w.connect('destroy', gtk.main_quit)
        w.show_all()
        gtk.main()
    
        2
  •  4
  •   eagleoneraptor    14 年前

    从3.2版开始,gtk+支持gtkentry占位符,但是使用python来利用它的唯一方法是使用 PyGobject 而不是Pygtk。

    当做

        3
  •  1
  •   shehata    13 年前

    您可以使用pygobject而不是pygtk,然后设置一个占位符就是小菜一碟: entry.set_placeholder_text(“some string”)。