信号に 3 つのボタンのスロットを割り当てたい。
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
QSignalMapper *signalmapper;
Ui::MainWindow *ui;
void test(int);
signals:
void clickmee(int);
public slots:
void setclick1(int);
void setclick2(int);
void setclick3(int);
};
私はコンストラクタでこれを行います:
signalmapper = new QSignalMapper(this);
signalmapper->setMapping(ui->pushButton, 10);
signalmapper->setMapping(ui->pushButton1, 10);
signalmapper->setMapping(ui->pushButton1, 10);
connect(signalmapper, SIGNAL(mapped(int)),this,SLOT(clickmee(int)));
しかし、私が書いたプログラムを実行すると:
QObject::connect: No such slot MainWindow::clickmee(int) in ..\Qsignal2\mainwindow.cpp:11 QObject::connect: (レシーバー名: 'MainWindow')
signal にスロットを割り当てるにはどうすればよいですか? パラメータをスロットに送信するにはどうすればよいですか?
編集:私はこれをしたい:
void setclick1(int x)
{
if(x== 10)
{
// ....
}
else
{
// ...
}
}
しかし、この関数は起動しません。どうやってやるの?