Rob*_*ley 11 c++ checkbox qt signals-slots qtreewidgetitem
我使用下面的代码创建了一个也是QTreeWidgetItem的复选框.
//Populate list
QTreeWidgetItem *program = createCheckedTreeItem(QString::fromStdString(itr->first), true);
treePrograms->addTopLevelItem(program);
Run Code Online (Sandbox Code Playgroud)
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;
}
Run Code Online (Sandbox Code Playgroud)
当复选框的状态发生变化时,我需要一种连接信号和插槽的方法.我实现这一点的当前方式如下,但不幸的是不起作用.有人可以解释我做错了什么以及我需要做什么才能让它连接起来?
connect(program, SIGNAL(toggled(bool)), this, SLOT(programChecked(bool)));
Run Code Online (Sandbox Code Playgroud)
您QTreeWidgetItem直接链接到您的模型数据,因此您应该连接到 QTreeWidget 的模型QAbstractItemModel::dataChanged信号以收到更改通知。
连接到itemClicked(QTreeWidgetItem* item, int column)树的信号。处理信号时,只需验证item->checkState(column).
| 归档时间: |
|
| 查看次数: |
11142 次 |
| 最近记录: |