我正在尝试使用Qt 5.12为android和linux构建一个应用程序。每次键入字符时,都需要读取QLineEdit
中的当前文本。在Android 6设备上,键入时当前文本部分显示下划线,并显示预测器。我只在每个Space
或Return
上得到信号QLineEdit::textChanged
。信号QLineEdit::textEdited
和QLineEdit::cursorPositionChanged
的行为相同。同时禁用QCompleter
和QValidator
没有帮助。
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);
}