如何在Android上关闭QLineEdit中的预测文字



我正在尝试使用Qt 5.12为android和linux构建一个应用程序。每次键入字符时,都需要读取QLineEdit中的当前文本。在Android 6设备上,键入时当前文本部分显示下划线,并显示预测器。我只在每个SpaceReturn上得到信号QLineEdit::textChanged。信号QLineEdit::textEditedQLineEdit::cursorPositionChanged的行为相同。同时禁用QCompleterQValidator没有帮助。

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->lineEdit->setCompleter(nullptr);
ui->lineEdit->setValidator(nullptr);
}

void MainWindow::on_lineEdit_textChanged(const QString &arg1)
{
//just for demonstration
ui->listWidget->addItem(arg1);
}

问题5.12.6安卓6.0.1/安卓7.1.1谷歌键盘

非常感谢您的回复!

对于那些感兴趣或面临相同问题的人来说:QLinedit::setInputMethodHints()是正确的选择。

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->lineEdit->setInputMethodHints(Qt::ImhNoPredictiveText|Qt::ImhNoAutoUppercase|Qt::ImhNoEditMenu);
}

最新更新