The 34-year-old has agreed a one-year deal at Firhill after leaving Ross County and has also previously played for Aberdeen, Rangers and St Johnstone.
Manager Ian McCall told the club's official website: "Richard is a terrific addition to the squad and I’m really pleased to get him.
"He’s played 550 games, most of them at Premier League level, and he’s a very, very fit boy. Importantly, he’s also strong on the mental side of the game - he is a winner who wants to help us win football matches."