2016-10-18 61 views
0

我是新的Qt ...我創建N個基於JSON文件的按鈕。我需要在單擊按鈕時運行一個函數/插槽,並且我需要知道按下了哪個按鈕。 我想:Qt連接到插槽/功能與參數

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

show_brands(JSON,類型)的函數/槽...... ,但我不能發送ARGS這樣的... 我怎麼能發送參數傳遞給我的函數/槽?或者如果我點擊一個按鈕時如何運行一個函數?

+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

連接(按鈕,信號(點擊()),signalMapper,SLOT(地圖())); signalMapper-> setMapping(button,new_type); connect(signalMapper,SIGNAL(mapped(QString)),this,SLOT(show_brands(QString))); – vitor13almeida