Класс Run (или Transaction) нужно сделать наследником QObject (для того, что бы задействовать сигналы/слоты).
В класс Run добавить сигнал changedStatus( const QString &text ).
Эмитить его из Run::run().
Изменить Program::run()
C++ (Qt)
void Program::run()
{
Run *r = new Run();
connect( r, SIGNAL( changedStatus( const QString & ) ), statusBar(), SLOT( showMessage( const QString & ) ) );
addTransaction( r );
}