有没有一种方法可以自动将光标放在 QLineEdit 中,而不必先 select 它?
Is there a way to automatically have the cursor be in a QLineEdit without having to select it first?
所以我目前正在 QTCreator 中制作一个项目,我在其中使用 RFID 扫描仪作为身份验证方式,并且使用我的扫描仪发送 RFID 就像通过键盘输入一样。现在我想做的是让 QLineEdit 抓取已经工作的 RFID,保存 RFID,然后再次清除 space。以上所有内容均适用于以下代码。
现在我的问题是,有没有办法让光标已经在 QLineEdit 中,从而准备好接受 RFID,而无需我先 selecting QLineEdit。我愿意更改我正在使用的小部件,只要我在按下输入按钮时有一个信号,因为这是芯片结束 RFID 的方式。
我尝试在显示后设置光标的位置,但是 select 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();
}
testLineEdit->setFocus(Qt::OtherFocusReason);
所以 Maitai 的答案出于某种原因对我不起作用,但它确实指导了我在示例中需要的内容:
testLineEdit->grabKeyboard();
我知道这之所以有效,是因为我只有这个扫描仪作为输入,并且只有一个输入字段,但我不需要更多。
所以我目前正在 QTCreator 中制作一个项目,我在其中使用 RFID 扫描仪作为身份验证方式,并且使用我的扫描仪发送 RFID 就像通过键盘输入一样。现在我想做的是让 QLineEdit 抓取已经工作的 RFID,保存 RFID,然后再次清除 space。以上所有内容均适用于以下代码。 现在我的问题是,有没有办法让光标已经在 QLineEdit 中,从而准备好接受 RFID,而无需我先 selecting QLineEdit。我愿意更改我正在使用的小部件,只要我在按下输入按钮时有一个信号,因为这是芯片结束 RFID 的方式。
我尝试在显示后设置光标的位置,但是 select 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();
}
testLineEdit->setFocus(Qt::OtherFocusReason);
所以 Maitai 的答案出于某种原因对我不起作用,但它确实指导了我在示例中需要的内容:
testLineEdit->grabKeyboard();
我知道这之所以有效,是因为我只有这个扫描仪作为输入,并且只有一个输入字段,但我不需要更多。