Tôi đã tạo một hộp kiểm cũng là một QTreeWidgetItem sử dụng mã bên dưới.Có thể tạo tín hiệu khi hộp kiểm QTreeWidgetItem được bật không?
//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;
}
Tôi cần một cách để kết nối tín hiệu và khe cắm cho khi trạng thái của hộp kiểm này được thay đổi. Cách hiện tại tôi đã thực hiện điều này là dưới đây, nhưng tiếc là không hoạt động. Ai đó có thể giải thích những gì tôi đang làm sai và những gì tôi cần làm để có được nó để kết nối?
connect(program, SIGNAL(toggled(bool)), this, SLOT(programChecked(bool)));
Điều này không đúng. QTreeWidget không có mô hình người dùng. –
@GHuxley Nhưng bạn vẫn có thể kết nối với mô hình mặc định cơ bản của QTreeWidget, ví dụ: 'treeWidget.model(). dataChanged.connect (handle_dataChanged)'. Không chắc chắn nếu điều này là tốt hơn so với chỉ kết nối với 'itemChanged' nhưng nó có vẻ tương tự. – blah238