关于查找treewidget子节点并替换该子节点的内容的问题
本帖最后由 kenchan0752 于 2012-11-21 10:39:36 编辑 想实现这样的功能:
从handle_getTreeWidget中输入str_Name,在输入之前判断treewidget中是否存在相同的str_Name,如果相同则返回,不相同则添加子节点。
现在的问题是:
1. 当输入2个数据后,group->childCount() = 1;
2. 当我输入2个数据后,第3个数据如果跟第1个相同的话仍然被添加;
3. 第2个问题会循环。
请问该如何去改正这些代码?谢谢!
(treewidget用的是控件;
QTreeWidgetItem *group;
QTreeWidgetItem *item; 两个是全局变量)
void MainWindow::handle_getTreeWidget(QString str_Name)
{
/*判断treewidget中是否有相同的devname,有则返回*/
if(isExist_strName(str_Name))
{
return;
}
else
{
addchild(group, str_Name);
}
}
group在构造函数里定义:
group = new QTreeWidgetItem(ui->view_treeWidget);
ui->view_treeWidget->setColumnCount(1);/*设置treeWidget只有1列显示*/
group->setText(0, "data");
/*判断treewidget中是否有相同的devname*/
bool MainWindow::isExist_strName(QString str_Name)
{
for(int i = 0; i < group->childCount(); i ++)
{qDebug() << " mainwindow count" << group->childCount();
if(item->text(i) == str_Name)
{
return true;
}
}
return false;
}
void MainWindow::addchild(QTreeWidgetItem *parent, QString str_Name)
{
item = new QTreeWidgetItem();
item->setText(0, str_Name);
item->setIcon(0, QIcon(":/images/s.png"));
parent->addChild(item);
}
[最优解释]
用findItems查找试试
[其他解释]
另外treewidget节点的总数一般怎么来获得?谢
[其他解释]
问题已经解决了
[其他解释]
用的其他的方法