QLineEdit,QTextEdit消息输入框键盘回车发送数据

有 如下一个界面,为聊天界面的一部分,上面的文本输入框是填写发送内容的部分,输入完成后点击“发送”按钮,将数据发送出去,原本的实现,在输入框中点击键盘回车键,文本会换行,现在希望在输入框中点击回车键,可以自动触发发送按钮的发送功能。
QLineEdit,QTextEdit消息输入框键盘回车发送数据_第1张图片
处理的方式很简单,步骤如下:
1.在输入框和发送按钮所在的主窗体中,设置输入框的事件过滤器为当前窗口
2.主窗口中重写eventFilter函数
3.在eventFilter函数中截获输入框键盘回车键按下事件
4.在截获的事件中调用数据发送按钮绑定的槽函数。

伪代码如下:

ui->textEdit->installEventFilter(this);//步骤一

bool eventFilter(QObject *object, QEvent *event)//步骤二
{
	if (object == ui->textEdit && event->type() == QEvent::KeyPress)
	{
		QKeyEvent *e = static_cast <QKeyEvent *> (event);
		if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return)//步骤三
		{
			slot_sendMsg();//步骤四
			return true;
		}
	}
	return QWidget::eventFilter(object, event);
}

你可能感兴趣的:(Qt,控件的使用)