使用QTest键入非ASCII字符

使用QTest键入非ASCII字符,qt,Qt,我正在尝试使用在Qt应用程序中输入文本。到目前为止,它对英语角色非常有效 当我尝试使用印地语/泰米尔语/日语等非ASCII字符时,应用程序因堆栈跟踪而崩溃QTest::asciiToKey(char)。看起来QTest::keyClicks()只支持拉丁字符 我是否可以输入非ASCII字符 示例代码 void enterText(std::string aSentence) { QTest::keyClicks(widget, QString::fromStdString(aSentence

我正在尝试使用在Qt应用程序中输入文本。到目前为止,它对英语角色非常有效

当我尝试使用印地语/泰米尔语/日语等非ASCII字符时,应用程序因堆栈跟踪而崩溃
QTest::asciiToKey(char)
。看起来
QTest::keyClicks()
只支持拉丁字符

我是否可以输入非ASCII字符

示例代码

void enterText(std::string aSentence)
{
  QTest::keyClicks(widget, QString::fromStdString(aSentence));
}

fApp->enterText("அ");

我想你应该提供键盘的按键顺序,而不是实际的文本。对于英语,它可能对应于英语键盘键,但对于其他语言,它并不总是正确的。例如,如果要打印通常通过按F10键打印的字符,则必须编写:
QTest::keyClick(myWidget,Qt::key\u F10)@vahancho让我试试看update@vahancho我尝试了这种方法,将系统语言改为非拉丁语,这样我就可以键入非英语字符。这样我就可以成功地键入非英语字符。但通过做Qtest测试,它只是进入了正常的英语角色。在@vahancho的引导下,我能够达到我想要的结果。我没有使用KeyClick,而是使用了QTest::sendKeyEvent方法,该方法为我完成了这项工作,因为该函数调用之前执行了asciiToKey操作。代码:QTest::sendKeyEvent(QTest::KeyAction::Click,widget,Qt::Key_A,QString::fromUtf8(aSentence.c_str()),Qt::KeyboardModifier::NoModifier)这里我们将随机键与文本一起传递