QTableWidget中编辑单元格,如何实现按下Enter键实现对文件名是否重复的判断?
越详细越好,如果答案准确可追加奖励!先谢谢了。。。(具体判断重复的代码我已经实现,我现在只需要确定如何捕获Enter键所在的编辑区域,即模拟Windows下新建文件夹时按...
越详细越好,如果答案准确可追加奖励!先谢谢了。。。(具体判断重复的代码我已经实现,我现在只需要确定如何捕获Enter键所在的编辑区域,即模拟Windows下新建文件夹时按下Enter的过程)
如图所示,我将新建文件夹(5)改为新建文件夹(4),按下Enter就会出现“文件名冲突”的提示!
分享一下吧!这个问题我解决了,其实思路一直很正确,就是哎。。。坑爹的单词!
Qt::Key_Return和Qt::Key_Enter你懂得!
tableWidget->installEventFilter(this);//注册事件过滤器
bool Widget::eventFilter(QObject*obj,QEvent*event)
{
if(obj == tableWidget)
{
if(event->type() == QEvent::KeyPress)
{
QKeyEvent*keyEvent=static_cast<QKeyEvent*>(event);//将事件转化为键盘事件
if(keyEvent->key() == Qt::Key_Return)
{
qDebug()<<keyEvent->key()<<Qt::Key_Return;
return true;
}
else
{
qDebug()<<keyEvent->key()<<Qt::Key_Enter;
}
}
else
{
return false;
}
}
else
{
returnQObject::eventFilter(obj,event);
}
} 展开
如图所示,我将新建文件夹(5)改为新建文件夹(4),按下Enter就会出现“文件名冲突”的提示!
分享一下吧!这个问题我解决了,其实思路一直很正确,就是哎。。。坑爹的单词!
Qt::Key_Return和Qt::Key_Enter你懂得!
tableWidget->installEventFilter(this);//注册事件过滤器
bool Widget::eventFilter(QObject*obj,QEvent*event)
{
if(obj == tableWidget)
{
if(event->type() == QEvent::KeyPress)
{
QKeyEvent*keyEvent=static_cast<QKeyEvent*>(event);//将事件转化为键盘事件
if(keyEvent->key() == Qt::Key_Return)
{
qDebug()<<keyEvent->key()<<Qt::Key_Return;
return true;
}
else
{
qDebug()<<keyEvent->key()<<Qt::Key_Enter;
}
}
else
{
return false;
}
}
else
{
returnQObject::eventFilter(obj,event);
}
} 展开
2个回答
展开全部
捕获 tableWidget.model 的dataChanged事件
connect(tw.model(),SIGNAL(dataChanged(QModexIndex*,QModexIndex *)),this,SLOT(...))
connect(tw.model(),SIGNAL(dataChanged(QModexIndex*,QModexIndex *)),this,SLOT(...))
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种情况下 按回车键不起作用吗?
追问
要执行槽函数的!不是随随便便的。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询