2016-08-02 37 views
0

我開始研究一個需要使用TableView的項目。我的表有3列,最後一列有一個組合框。使用委託我設法設置組合框並在組合框的索引狀態更改時檢索信號。問題是我無法從女巫組合框中識別信號是從哪裏來的。來自代表的信號

如果我發信號給mainWindow comboBox的QString,這似乎是非常糟糕的。我在想一個解決方案,從每一行插入到組合框的行索引。像行+名稱。

我發起這樣喜歡使用建議從另一篇文章的連接,:

signals: 
    void boxDataChanged(const int & str); 

在創建編輯:

QComboBox * editor = new QComboBox(parent); 
    editor->addItem("This"); 
    editor->addItem("is"); 
    editor->addItem("nice"); 

    connect(editor, SIGNAL(currentIndexChanged(int)), this, SIGNAL(boxDataChanged(int))); 

    return editor; 

並號召一樣:

connect(mydelegate, &Delegate::boxDataChanged, [=](const int & str) 
{ 
     qDebug() << str; 
}); 

這是工作不錯,但我也需要知道從女巫行這是來。

回答

1

問題是我無法從巫婆comboBox識別信號是 emited from。

您可以使用QObject::sender來獲取信號的發送者。 它會返回一個QObject,您可以將其轉換爲所需的類型。