QT里关于QTextEdit控件的信号问题,求解答

问题描述

QT里关于QTextEdit控件的信号问题,求解答

一个项目出现BUG百思不得其解,经过很多排除,最后锁定原因所在,问题的关键在于如下:
QTEXTEDIT控件自身带有textChanged()信号,当文本改变时会发射此信号,可是,问题
出现了!!经过很多次的尝试,发现在控件里正常输入字符的时候,信号会正常发射
一次(调用了连接到此信号的一个槽函数一次),可是!!!当删除某个字符(BACKSPACE键),莫名其妙竟然会发射textChanged()信号两次(槽函数被调用了两次)!!!!!!
就是这个问题导致了最终BUG的出现。
为了排除,我又写了一个最基本的示例,MAINWINDOW里只有一个控件QTextEdit,
相应的槽函数里只简单弹出一个QMESSAGEBOX,换了一台机器,换了一个版本的QT,
依然如此,正常输入时函数被调用一次,删除的话就会调用两次,代码和界面截图如下,请大牛帮解释这是为何?如何解决?感谢!!!
CPP文件代码

h文件代码

界面截图

解决方案

https://bugreports.qt.io/browse/QTBUG-15003

时间: 2024-08-19 21:05:51

QT里关于QTextEdit控件的信号问题,求解答的相关文章

qt-Qt里的QTableWidget控件里绘图问题。

问题描述 Qt里的QTableWidget控件里绘图问题. QTableWidget里面有很多单元格,我想画条线把任意2个单元格连接起来.画矩形,根据 4个单元格比如A(2,3),B(5,3),C(2,10),D(5,10)括号里面数字为对应的行列值,画出一个矩形,并填充颜色. 解决方案 关于QTableWidget里的滚动条问题 解决方案二: http://blog.csdn.net/jingzhesiye/article/details/7870543 解决方案三: http://blog.

ui界面-一个QT中特殊输入控件的实现问题

问题描述 一个QT中特殊输入控件的实现问题 我需要制作出一个QT输入控件,用户能在其中正常输入 数字字符,但需要实现的效果为: 每输入4个字符后自动空一格,即每自个字符为一组 每输入10组字符后自动换下一行 每输入达到5行后自动空一段,继续输入另起一段,效果见截图: 打算用QTextEdit来实现,请教比较合适的实现方法,不限制最终用什么输入控件, 谢谢! 解决方案 用QTextEdit实现了一下,应该能满足LZ的要求 main.cpp: #include "mainwindow.h"

timer-DEV 第三方控件中的使用中自定义用户控件里面的Timer 控件的使用

问题描述 DEV 第三方控件中的使用中自定义用户控件里面的Timer 控件的使用 用户控件中使用的代码如下:/asp:ScriptManager /asp:Timer /asp:Literal /asp:UpdatePanel 为什么到事件刷新的时候会报 " Sys.WebForms.PageRequestManagerParserErrorException: 未能分析从服务器收到的消息." 这个错误呢?请指教一下 解决方案 asp不会,jsp会一点,祝你好运!

Javascript+HTML仿造VB里的MonthView控件

<html><head><title>MonthView Demo</title><script language=javascript>/***********************************    程序功能:日期选择                     特点 :Javascript+HTML仿造VB里的MonthView控件       作者 :ken                        联系 :boboshu@

timer-为什么在Forms.Timer的事件处理程序里,界面控件依然是不可访问的?

问题描述 为什么在Forms.Timer的事件处理程序里,界面控件依然是不可访问的? 为什么在System.Windows.Forms.Timer的事件处理程序里,界面控件依然是不可访问的? 为什么在System.Windows.Forms.Timer的事件处理程序里,界面控件依然是不可访问的? 为什么在System.Windows.Forms.Timer的事件处理程序里,界面控件依然是不可访问的? 解决方案 自己结贴了.是VS软件的问题,重启下居然好了,抓狂了大半天. 解决方案二: 是跨线程调

javascript-如何在js里为activex控件里的方法传入byte的数组

问题描述 如何在js里为activex控件里的方法传入byte的数组 我现在有一个activex的控件,它里面有个方法需要传入byte数组,控件里面的方法是usb_write(byte[] Q_index, byte[] Q_type, byte[] pQ_data),这个在js中如何为它里面传byte[]类型的参数啊 解决方案 try xxx.usb_write([1,2,3,5],[1,2,3,5],[1,2,3,5])

vc++-如何使对话框里的EDIT控件响应键盘的回车键???

问题描述 如何使对话框里的EDIT控件响应键盘的回车键??? 我想解决的问题是: 在VC++程序中,向Edit控件中输入数据,然后敲击回车,就把输入的数据输送给其他文件. 想问问大家有没有程序实例或者解题思路????? 解决方案 void CMyEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); { if (nChar == VK_RETURN) { 你的处理代码 } CEdit::OnKeyDown(nChar, nRepCnt, n

vc++-MFC里如何判断控件失去了焦点

问题描述 MFC里如何判断控件失去了焦点 我想在一个编辑框失去焦点时判断输入的是否正确,请问该如何判断失去了焦点? 解决方案 不需要自己写,直接用ddv/ddxhttp://blog.csdn.net/laogaoav/article/details/20764231http://blog.sina.com.cn/s/blog_6c8fad9f01011yxg.htmlhttp://blog.csdn.net/zhangyang0402/article/details/3948144 解决方案二

imageview-Android关于改变ListView里面的ImageView控件的背景图出现无法触发点击事件的问题

问题描述 Android关于改变ListView里面的ImageView控件的背景图出现无法触发点击事件的问题 问题说明:我使用AudioRecord进行录音,想要点击ImageView开始录音,然后根据音量大小设置ImageView背景图 ,由于ImageView是ListView的Item里面的一个子控件,于是我开启一个线程,使Thread.sleep(100);后 notifyDataSetChanged(),这时问题就出现了,当我再次点击ImageView想要录音暂停时,发现有时候点击事