2016-10-18 7 views
0

私はQtの新機能です... JSONファイルに基づいてN個のボタンを作成しています。ボタンをクリックすると関数/スロットを実行する必要があり、どのボタンが押されたのかを知る必要があります。 私が試した:Qtはargsを使ってスロット/関数に接続します

QObject::connect(button, &QToolButton::clicked, this, &base::show_brands(json, type)); 

show_brands(JSON、タイプ)...機能/スロットです が、私はこのような引数を送信することはできません... はどうやって機能/スロットに引数を送ったことができますか?または、ボタンをクリックしたときにどのように機能を実行できますか?

+1

1)スロットに引数を渡すには、シグナルを渡す必要があります。 2)またはこのポストを参照してください[リンク](http://stackoverflow.com/questions/5153157/passing-an-argument-to-a-slot) – Mikhail

+0

私は信号を試みたが、それは動作していない...多分私は、それは間違っている。私はオンラインで検索し、送信者を確認できます...どうすればいいですか? – vitor13almeida

答えて

0

QSignalMapperを使用します。

http://doc.qt.io/qt-5/qsignalmapper.html#details

これは、あなたがソースオブジェクトを識別することができ、単一のメソッドにオブジェクトのコレクションからの信号を送信することができます。

+0

私は信号を試しましたが、動作していません...たぶん私は間違っています。私はオンラインで検索し、送信者を確認できます...どうすればいいですか? – vitor13almeida

+0

これは現在動作しています... – vitor13almeida

+0

connect(button、SIGNAL(clicked())、signalMapper、SLOT(map())); signalMapper-> setMapping(button、new_type);connect(signalMapper、SIGNAL(mapped(QString))、this、SLOT(show_brands(QString))); – vitor13almeida

関連する問題