QT treeWidget item 单击事件!
各位大虾,我创建了一个treeWidget,然后创建了两个item。我想实现在单击其中一个item的时候,程序会打开相应的文件,比如图片什么的。我创建了signal和slot,但是编译后,单击item没有反应。各位热心朋友们帮我看一下是怎么回事吧?以下是我的代码:
SimpleView::SimpleView()
{
this->ui->treeWidget->setColumnCount(3);
QStringList columns;
columns << "first column" << "second column" << "third column";
QTreeWidgetItem *item1 = new QTreeWidgetItem(this->ui->treeWidget, columns);
item1->setText(0, "wo ai ni");
QTreeWidgetItem *item2 = new QTreeWidgetItem(this->ui->treeWidget, columns);
item2->setText(0, "pipi");
this->ui->treeWidget->addTopLevelItem(item1);
this->ui->treeWidget->addTopLevelItem(item2);
connect(this->ui->treeWidget, SIGNAL(itemClicked(QTreeWidgetItem* item1, columns)), this, SLOT(slotOpen()));
};
void SimpleView::slotOpen()
{
...
}
[解决办法]
信号槽连接时语句中不能带参数名:
connect(this->ui->treeWidget, SIGNAL(itemClicked(QTreeWidgetItem* item1, columns)), this, SLOT(slotOpen()));
改成
connect(this->ui->treeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(slotOpen()));
[解决办法]
slotOpen最好定义成和signal一样的参数slotOpen(QTreeWidgetItem* item1, int columns),好知道信号是谁发来的
[解决办法]