画像用のフィルタのリストを使用していQListWidgetます。このフィルタはコンテキスト メニューによって追加され、contextMenuEvent を再実装しました。2 つのコンテキスト メニューがあります。addfilter メニューと deletefilter メニューです。フィルタを追加すると、これ :
MenuFiler::MenuFiler()
{
    Laplace = new QAction("Laplace" , this);
    QObject::connect(Laplace , SIGNAL(triggered()) , this , SLOT(LaplaceSlot()) );
    QObject::connect(this, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, `SLOT(ManageControls(QListWidgetItem*)));  // to show controls for clicked item`           
    .
    . 
    .
}
void MenuFiler::LaplaceSlot()
{
    this->addItem("Laplace");
}
今、他の関数で、アイテムがあるかどうかを確認します。このアイテムのテキストを取得し、このフィルターのコントロールを作成します。このようにします
void MenuFiler::ManageControls(QListWidgetItem*item)
{
 if (item->text() == "Laplace")
    {
        if (_laplacianeffect.get() == NULL)
        {
             _laplacianeffect =  unique_ptr<Laplacianeffect> (new Laplacianeffect());
        }
        _laplacianeffect.get()->show();
    }
    .
    .
    // etc
}
コントロールはqframeにリンクされたボタンとスライダーだけで、ここでは問題ありません。私の問題は、重複した効果を保存するためのベクトルを作成したい場合です。たとえば、ユーザーは、フィルターリストを表す qListWidget にこのフィルターを追加します。
ラプラス その他の効果 ラプラス
だから私はこのようなことをします
void MenuFiler::LaplaceSlot()
{
  _laplacianeffect.push_back(new Laplacianeffect() );
    this->addItem("Laplace");
}
魔女フィルターが選択されていることを検出する方法
void MenuFiler::ManageControls(QListWidgetItem*item)
    {
     if (item->text() == "Laplace")
        {
 // what is the code that i should use to detect witch effect id is selected)
               _laplacianeffect.at(filterid).show()
        }
    }