Short answer:
yes!
Long answer: If you inherit from sf::Drawable, you are able to implement:
virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const
Which would then let you do:
someSFMLWindow.draw(GButtonObject);
For an example, here is my code for a button:
class Button : public Widget
{
// stuff
private:
sf::Text text;
sf::Sprite sprite;
virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const
{
target.draw(sprite, states);
target.draw(text, states);
}
}
(my Widget class inherits from sf::Drawable)
Just realized, as you already inherit from sf::RectangleShape, you
may not have to explicitly inherit from sf::Drawable yourself.
Read more
here.