Je suis pas coutumier du connect, avec Designer 3, tout se fait tout seul (un tort pour le programmeur, mais une bénédiction pour le néophyte), mais de ce que je voi dans Designer 3, ça serait plutôt :
class MaFenetre : public QWidget
{
...
QButton m_ok;
slot: // je crois qu'il faut déclarer les fonctions qui seront des slots.
int main_prog(){...}
}
puis
MaFenetre MF0;
QObject::connect(m_ok, SIGNAL(clicked()), MF0, SLOT(main_prog());
Dans designer 3, lorsque l'on fait une liaison entre un bouton et une action, l'émetteur est le bouton, le signal clicked(), par contre le receveur est la forme de base (la fenetre ou Widget), et le slot une fonction comprise dans le receveur.
Pour avoir essayé de faire un connect directement, il me semble que la class receveuse doit être dérivé de QObjet ou de QWidget (de mémoire, à confirmer).
Pour pas m'enmerder, je crée un slot lanceprg(), qui contient l'appel au programme main_prg(), cela évite de recopier du code long et compliquer dans la partie QT. Attention, si ton programme est long à terminer et ne rend pas la main immédiatement, le résultat sera que ta fenetre sera figée une fois que tu aura cliquer sur le bouton. Ce que tu peux faire, c'est faire un hide(); dans le slot lanceprg() juste avant ansi le fentre disparait et ainsi, plus de fenetre figé. Ou alors, tu fait un thread (mais alors là bonne chance, autant pthread est super simple, autant avec QT, je galère)
Tout ça, c'est ce que je ferai, mais n'ayant pas beaucoup de connaissances en QT, ne le considère pas comme des conseils, mais comme des solutions possible. Le principal c'est que le programme tourne comme tu veux.
Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur