Qt+ VS实现多输入框键盘回车响应事件

在通信界面经常出现,一个ui里面,有很多输入框,按下回车后,如何确定是刚刚输入的那个输入框的值发生了改变呢。

首先获取当前光标位置

QWidget* fw = QApplication::focusWidget();

重写键盘事件

xxx.h中:

protected:
	virtual void keyPressEvent(QKeyEvent* evt);

xxx.cpp中:
构造函数添加:

this->grabKeyboard();

键盘事件:

void testFocusWgt::keyPressEvent(QKeyEvent* evt)
{

	QWidget* fw = QApplication::focusWidget();
	QString str,str1;
	if (fw == ui.spb1)
	{
		str = "Widget: spb1 " + QString::number(ui.spb2->value());
	}
	else if (fw == ui.spb2)
	{
		str = "Widget: spb2 " + QString::number(ui.spb2->value());
	}
	else if (fw == ui.spb3)
	{
		str = "Widget: spb3 " + QString::number(ui.spb3->value());;
	}
	else if (fw == ui.spb4)
	{
		str = "Widget: spb4 " + QString::number(ui.spb4->value());;
	}
	else if (fw == ui.spb5)
	{
		str = "Widget: spb5 " + QString::number(ui.spb5->value());
	}
	else if (fw == ui.lineedit)
	{		
		str = "Widget: lineedit " + ui.lineedit->text();
	}


	switch (evt->key())
	{
	case Qt::Key_Return:
	case Qt::Key_Enter:
		ui.textBrowser->append(str);
	default:break;
	}

	QWidget::keyPressEvent(evt);
}

结果:

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值