描述
界面有两个控件,QListWidget 和 QTextEdit,
QListWidget 条目为自定义控件,如一个 QPushButton。
代码
for(int i = 0; i < 10; i++) {
QPushButton *box = new QPushButton;
box->setFocusPolicy(Qt::NoFocus);
box->setText(QString::number(i));
QListWidgetItem *item = new QListWidgetItem;
ui->listWidget->addItem(item);
ui->listWidget->setItemWidget(item, box);
}
QTimer *timer = new QTimer;
connect(timer, &QTimer::timeout, [=] {
QListWidgetItem *item = ui->listWidget->takeItem(0);
delete item; item = nullptr;
timer->stop();
});
timer->start(5000);
问题现象
当使用 微软拼音/谷歌拼音 输入内容时,
此时 QListWidget 条目删除,输入法的半成品内容会自动提交到 QTextEdit 中。
说明
与控件焦点无关,此时 QTextEdit 仍有焦点。
期望结果
QTextEdit 内容无变化,输入法内容不被提交
以上该如何处理呢?