扫描textedit条形码的qt app,如何在两个字段之间更改焦点

时间:2018-04-12 12:10:12

标签: qt focus barcode keyboard-events

所以对我来说,计划是这样的:

我扫描一个条形码,它首先进入短信; 我扫描另一个条形码,它进入第二个textedit,
在这种情况下,我使用焦点和键盘事件。

我的问题是,当我扫描第一个代码时,它很好但是当我扫描第二个代码时,一些字母转到第二个texedit,一些转到第一个texedit。 我不明白是什么问题 这是我的代码

void CWidget::keyPressEvent(QKeyEvent *event)
{
  if(focusWidget() == ui->lePath && !ui->lePath->text().isEmpty())
  {
    ui->leInformation->setFocus(); //leInformation second edit 
    ui->leInformation->setFocusPolicy(Qt::StrongFocus);
    ui->leInformation->KeyPressEvent(event);
  }
  else
  {
    ui->lePath->setFocus(); //lePath - first edit text, first code scanned //goes here
    ui->lePath->setFocusPolicy(Qt::StrongFocus);
    ui->lePath->KeyPressEvent(event);
  }
}

喜欢奇怪的思考原因有时候工作有时候没有,如果扫描的两个代码都有数字,但是如果第二个扫描的代码有大写字母,则它们会从写入的第一个大写字母开始编辑。但如果它们是小写的,它们就再好了。我认为键盘事件是如何处理大写的问题。不知怎的,也许有转变,它们在两次编辑之间改变。 如果有人对如何正确编写键盘事件有所了解,请帮助谢谢

enter image description here

这里B应该是第二个。我确定如何在键盘事件中输入大写是关于shift +字母和shift移动到另一个编辑,但我如何改变这个

0 个答案:

没有答案