我使用下面的代码创建了一个也是QTreeWidgetItem的复选框。是否可以为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)));
这是不正确的。 QTreeWidget没有用户模型。 – 2014-04-02 05:27:24
@GHuxley但是你仍然可以连接到一个QTreeWidget的底层默认模型,例如'treeWidget.model()。dataChanged.connect(handle_dataChanged)'。不知道这是否比连接到'itemChanged'更好,但它看起来很相似。 – blah238 2016-12-16 01:21:54