绑定treewidget的点击信号与自定义的槽,这里的点击信号是左右键都有,只想右键需要在槽函数里多一句判断
connect(ui->treeWidget, SIGNAL(itemPressed(QTreeWidgetItem*, int)),
this, SLOT(TreeWidgetItemPressed_Slot(QTreeWidgetItem*, int)));
槽函数实现
void Widget::on_treeWidget_itemPressed(QTreeWidgetItem *item, int column)
{
if (qApp->mouseButtons() == Qt::RightButton) // 判断是否为右键点击
{
if(mExitAct==mExitMenu->exec(QCursor::pos()))
{
QMessageBox box;
box.setText("确定添加");
box.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
int ret = box.exec();
QTreeWidgetItem *item;
switch (ret)
{
case QMessageBox::Ok:
// Save was clicked
item=new QTreeWidgetItem(QStringList("新建项"));
ui->treeWidget->addTopLevelItem(item);
break;
case QMessageBox::Cancel:
// Cancel was clicked
break;
default:
// should never be reached
break;
}
}
}
}
什么是qApp
查看源码可知它是QApplication对象的一个单例指针
QApplication类继承自QCoreApplication类,它专门用于创建和管理图形用户界面(GUI)应用程序。QApplication提供了更高级的功能,使得事件处理更加方便。
QApplication类的方法参考:QApplication的用法 - lsgxeva - 博客园 (cnblogs.com)