You will need to write yourself a bunch of GUI classes which draw the GUI interface (buttons, text) as well as some basic "collision detection" to detect if the mouse was clicked inside your button when the user presses the mouse button.
You don't necessarily have to use function pointers, they are more of a convenience. The below example is just as capable.
I would instead write a button class that had position, width, height, etc then you could write a method that returned if the mouse was clicked, not requiring any hard coding which you should avoid at all costs.
If you want to implement a very basic and non-flexible GUI you could detect mouse clicks like this):
if ( mouseWasClicked == true )
{
if (( mouseX > startButton.minX && mouseX < startButton.maxX ) &&
( mouseY > startButton.minY && startButton.maxY < mouseY) )
{
loadGame();
}
}
That said I'd recommend using a proper library for a GUI system such as CEGUI which is open source and works with Rendering engines like Ogre and others. CEGUI is also portable and much more lightweight than Qt. It is recommended if you are programming a game.
Don't reinvent the wheel unless you're trying to learn how the low level works, use something that is proven.