• 5017阅读
  • 9回复

[提问][查找]功能的问题 [复制链接]

上一主题 下一主题
离线lsy890313
 
只看楼主 倒序阅读 楼主  发表于: 2011-10-25
关键词: QT4问题编译
我用QT Creator编程 要实现一个查找特定字符的功能
现在的查找函数里有3种用法
    enum FindFlag
{
FindBackward = 0x00001,
FindCaseSensitively = 0x00002,
FindWholeWords = 0x00004
};
但是第一个是从后往前找;第2个不太清楚;第3个是完全匹配
我现在想实现从前往后的非完全匹配(假如ssfsd 我查ss的时候能查到)查找。。这个怎么实现阿?
有特定的从前向后查找的函数用法吗?如果没有 怎么实现把光标移到最后1行最后1列阿?谢谢各位了。。
离线lsy890313
只看该作者 1楼 发表于: 2011-10-25
离线lsy890313
只看该作者 2楼 发表于: 2011-10-25
刚才又试了试 貌似第2种 是从前向后的非完全匹配查找
但是问题又来了。。怎么把光标移到文本的第一行第一列。。
离线ppdayz

只看该作者 3楼 发表于: 2011-10-25
回 2楼(lsy890313) 的帖子
第二个是大小写敏感
你find是用的哪个函数?
QTextCursor    find ( const QString & subString, const QTextCursor & cursor, FindFlags options = 0 ) const
QTextCursor    find ( const QRegExp & expr, const QTextCursor & cursor, FindFlags options = 0 ) const
QTextCursor    find ( const QString & subString, int position = 0, FindFlags options = 0 ) const
QTextCursor    find ( const QRegExp & expr, int position = 0, FindFlags options = 0 ) const
是这里的之一么?
离线jorneyr

只看该作者 4楼 发表于: 2011-10-25
使用正则表达式
离线roywillow

只看该作者 5楼 发表于: 2011-10-25
你把搜索想复杂了似乎
FindFlags只是些flag罢了,你需要什么样的搜索方式就给设置上什么样的flag
FindBackward是从后往前搜索,想从前往后就不用设置这个
FindCaseSensitively是大小写敏感,不需要也可以不设置
FindWholeWords是整个单词匹配,从你的需求来看也不需要

从你的需求来看,不需要设置任何flag……保持人家默认的0就好了……
移动到最后一行最后一列的话应该是看你用的文本框之类的东西提供的方法了,确实可以办到的,至少移动光标不是难事,这一点不用怀疑
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线lsy890313
只看该作者 6楼 发表于: 2011-10-26
回 5楼(roywillow) 的帖子
if(!ui->textEdit->find(findText,QTextDocument::FindBackward ))

这是我现在的语句 如果要使默认0的话 是怎么写啊。。?
离线lsy890313
只看该作者 7楼 发表于: 2011-10-26
回 3楼(ppdayz) 的帖子
好像都不是。。厄。。那你说的 那几个函数怎么用阿
离线ppdayz

只看该作者 8楼 发表于: 2011-10-26
回 6楼(lsy890313) 的帖子
bool    find ( const QString & exp, QTextDocument::FindFlags options = 0 )
默认要0的话就不要有参数就可以了
if(!ui->textEdit->find(findText))就行
离线roywillow

只看该作者 9楼 发表于: 2011-10-26
Re:回 5楼(roywillow) 的帖子
引用第6楼lsy890313于2011-10-26 08:58发表的 回 5楼(roywillow) 的帖子 :
if(!ui->textEdit->find(findText,QTextDocument::FindBackward ))
这是我现在的语句 如果要使默认0的话 是怎么写啊。。?



正如楼上
你不给他提供FindBackward的参数不就得了么……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个