Important: Please read the Qt Code of Conduct -

Signals & Slots problems

  • I'm using the latest SDK on Fedora 13 64bit. I've been trying to follow the tutorials & examples provided to reaquaint myself with C++ & Qt. I'm having a problem trying to use the Signals & Slots in a small practice app. The slot I wrote to respond to a button click isn't listed in the Signals & Slots editor. I tried to connect as shown in the docs, but the compiler throws about a thousand errors. The docs don't say or show exactly where the connection should be (i.e. which file & where in the file). I've stomped over it so much that I have myself thoroughly confused. It doesn't help that I haven't tried to write anything in almost 8 years. Would anyone be willing to hold my hand for a bit & walk me through how to get this done? I know it can't be THAT hard. Thanks in advance for any help.


  • You can simply add connect() to your form constructor. Something like that:

    MyForm::MyForm(QWidget *parent) : QWidget(parent)
    connect(ui->myButton, SIGNAL(clicked()), this, SLOT(buttonClicked()));

    or create slot named as on_myButton_clicked() in form, containing myButton (replace it with your name for needed signal emitter).

  • two things I jsut want to remind u .
    Make sure you write Q_OBJECT macro in you header file

    and declare your slot in the slot section of the header :
    class myForm ..

    private slots:
    void butonclick();


    but when subclassing from a ui file , the last method of the abov reply is more conveniant as it auto-connect directly

Log in to reply