• 6195阅读
  • 5回复

怎么发一个退格符 [复制链接]

上一主题 下一主题
离线磐石
 
只看楼主 倒序阅读 楼主  发表于: 2009-11-03
我定义了一个名为back的QPushButton,作用是:当按下去时,向光标所在文本框中发一个退格符,让光标退后一格,
我是这样做的:connect(back,SIGNAL(clicked()),this,SLOT(backclicked()));
其中SLOT函数backclicked()中,是通过这样发退格符的(sendCommitString("\b");)运行程序后发现文本框中光标向前走了一格,
哪位大哥帮个忙吧,指点一下应该怎样才能实验光标的退格问题?谢谢!
不怕做不到,只怕想不到
离线dbzhang800

只看该作者 1楼 发表于: 2009-11-03
'\b'只是不可见字符,往文本框内追加一个不可见字符,光标后移也可以理解嘛。当然你可以创建自己的文本框,当出现'\b'字符时,不仅不尝试显示它,还将前一个字符也删除。

莫非你和键盘按键事件混淆了? 一般文件编辑的程序中都是是收到该按键事件,会执行删除一个字符的操作。QTextEdit等也都是这样的行为
离线磐石
只看该作者 2楼 发表于: 2009-11-03
引用第1楼dbzhang800于2009-11-03 22:18发表的  :
'b'只是不可见字符,往文本框内追加一个不可见字符,光标后移也可以理解嘛。当然你可以创建自己的文本框,当出现'b'字符时,不仅不尝试显示它,还将前一个字符也删除。
莫非你和键盘按键事件混淆了? 一般文件编辑的程序中都是是收到该按键事件,会执行删除一个字符的操作。QTextEdit等也都是这样的行为

那在QT4中有没有这样的事件,让QTextEdit收到这样的事件后,删除一个字符呢?
不怕做不到,只怕想不到
离线dbzhang800

只看该作者 3楼 发表于: 2009-11-03
QTextEdit本身就是这么相应键盘事件的。问题是你没产生键盘事件

只是不清楚你为什么需要给他送字符'\b',要实现退格效果的话,直接删除里面的最后的一个字符不就行了
离线磐石
只看该作者 4楼 发表于: 2009-11-04
引用第3楼dbzhang800于2009-11-03 23:45发表的  :
QTextEdit本身就是这么相应键盘事件的。问题是你没产生键盘事件
只是不清楚你为什么需要给他送字符'b',要实现退格效果的话,直接删除里面的最后的一个字符不就行了

不好意思,是我没说清楚,我的意思是,不外接键盘,而是想设计一个软键盘,back是软键盘上的一个按钮,那back 的SLOT函数应该怎样才能产生一个让QTextEdit删除一个字符的键盘事件呢?请再指点一下,谢谢
不怕做不到,只怕想不到
离线dbzhang800

只看该作者 5楼 发表于: 2009-11-04
引用第4楼磐石于2009-11-04 09:04发表的  :
不好意思,是我没说清楚,我的意思是,不外接键盘,而是想设计一个软键盘,back是软键盘上的一个按钮,那back 的SLOT函数应该怎样才能产生一个让QTextEdit删除一个字符的键盘事件呢?请再指点一下,谢谢



假定一下:你不是要实现输入法那样的软件盘,而只是实现针对某个程序的软键盘
这样的话,
前些天有人问过问题,你可以搜搜看。或者直接去 qt-apps.org 找吧,里面有现成的例子
快速回复
限100 字节
 
上一个 下一个