以下のコードを使用して、QTreeWidgetItem でもあるチェックボックスを作成しました。
//Populate list
QTreeWidgetItem *program = createCheckedTreeItem(QString::fromStdString(itr->first), true);
treePrograms->addTopLevelItem(program);
QTreeWidgetItem* ConfigDialog::createCheckedTreeItem(QString name,bool checkBoxState)
{
QTreeWidgetItem *item = new QTreeWidgetItem(QStringList(name));
item->setFlags(item->flags()|Qt::ItemIsUserCheckable);
if (checkBoxState)
{
item->setCheckState(0,Qt::Unchecked);
}
else
{
item->setCheckState(0,Qt::Checked);
}
return item;
}
このチェックボックスの状態が変更されたときのために、シグナルとスロットを接続する方法が必要です。これを実装した現在の方法は次のとおりですが、残念ながら機能しません。誰かが私が間違っていることと、接続するために何をする必要があるかを説明できますか?
connect(program, SIGNAL(toggled(bool)), this, SLOT(programChecked(bool)));