def update_avatar(self):
        '''更新用户头像'''
        def do_update_avatar(info, error=None):
            if error or not info:
                logger.error('Failed to get user avatar: %s, %s' %
                             (info, error))
            else:
                uk, uname, img_path = info
                self.img_avatar.set_from_file(img_path)
                self.img_avatar.props.tooltip_text = '\n'.join([
                    self.profile['username'],
                    uname,
                ])
        if not self.profile['display-avatar']:
            return
        self.img_avatar.props.tooltip_text = ''
        cache_path = Config.get_cache_path(self.profile['username'])
        gutil.async_call(gutil.update_avatar, self.cookie, self.tokens,
                         cache_path, callback=do_update_avatar)