如何使用PyQt的QtextEdit组件实现按回车发送消息
闲话:好久没有写博客了,今天解决了一个textedit组件按回车发送消息问题,所以想来记录一下,之前我也不知道怎么写,看了csdb上面很多朋友的解决办法,看着确实实现了回车发送消息的问题,但是一应用到自己的代码中,直接textedit框都加载不出来,折腾很久,后来决定抛弃别人的做法,自己想办法解决,最终真让我相处了一个解决办法。思路如下。
1.先建立一个textedit组件:
self.textEdit = QtWidgets.QTextEdit(self) #这里我们继承QTextEdit类
2.然后我们给她绑定一个方法textChanged,这个方法是当文本框内容发生改变则会触发相应的事件。
self.textEdit.textChanged.connect(self.text_changed) #将该事件绑定到text_changed方法上
3.自定义text_change方法
def text_changed(self):
#每当文本框内容发生改变一次,该方法即执行一次,这个应该可以理解吧
msg = self.textEdit.toPlainText() #首先在这里拿到文本框内容
if '\n' in msg:
#做一个判断,textedit默认按回车换行,本质是在后面加了一个\n,那我们判断换行的根据就是判断\n是否在我那本框中,如果在,OK,那下一步
msg = msg.replace('\n','') #将文本框的\n清除掉
self.textEdit.setText(msg) #将处理后的内容重新放入文本框
self.on_sendMsg_clicked() #执行发送按钮,这是我自己定义的按钮,你们可以根据自己的需要print(msg)
4.整个过程就结束了,我们来看看效果:
完美结束! 有问题的朋友,可以加我WX:hg2334829980