code: 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_avatarf 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)
docs: 更新用户头像