首页 > 解决方案 > 有没有办法让光标自动位于 QLineEdit 中而无需先选择它?

问题描述

因此,我目前正在 QTCreator 中制作一个项目,在该项目中我使用 RFID 扫描仪作为身份验证方式,并且使用我的扫描仪发送 RFID 就像是通过键盘键入一样。现在我想做的是让 QLineEdit 抓取已经工作的 RFID,保存 RFID,然后再次清理空间。以上所有内容都已经适用于下面的代码。现在我的问题是,有没有办法让光标已经在 QLineEdit 中,因此准备好接受 RFID,而无需我先选择 QLineEdit。我愿意更改我正在使用的小部件,只要我在按下回车按钮时有信号,因为这是芯片结束 RFID 的方式。

我尝试在显示光标后设置光标的位置,但没有选择 QLineEdit。我还使用 QTextEdit 寻找解决方案,但也没有结果,除了它甚至没有 returnPressed 信号。

一些侧面信息,我正在使用 QTCreator 4.12 和 Qt 5.12.7,并且我在运行 openSUSE Leap 15.2 的虚拟机上,非常感谢我可以使用的任何帮助或不同的小部件。

QLineEdit *testLineEdit = new QLineEdit;

connect(testLineEdit, SIGNAL(returnPressed()), this, SLOT(scanTest()));

void MainWindow::scanTest(){
  QString RFID = testLineEdit->text();
  testLineEdit->clear();
} 

标签: qtqlineedit

解决方案


因此,由于某种原因,Maitai 的答案对我不起作用,但它确实引导我了解我在示例中需要的内容:

testLineEdit->grabKeyboard();

我知道这只会起作用,因为我只有这个扫描仪作为输入并且只有一个输入字段,但我在这里不需要更多。


推荐阅读