应用场景
假设一个LineEdit: ledit_Phone 对应的是 电话号,一个LineEdit:ledit_Id对应身份证号吗。不能用键盘,只能用触屏来进行操作。
让你点数字按钮时,如何按钮上的数字 给用户需的 LineEdit赋值呢?
解决思路
根据焦点来判断 是对哪个LineEdit进的操作,但你一点数字按钮,这个时焦点就跑到了数字按钮上,解决的最好办法就是 在代码构造时,取消所有数字按钮的焦点。
focusPolicy = NoFocus;
功能代码
// An highlighted block
void Widget::doPorcessClickNum(bool)
{
//QPushButton *btn = (QPushButton *)this->sender();
QPushButton *btn = qobject_cast<QPushButton *>(this->sender());
if(btn == NULL){
return;
}
QString text = btn->text();
if(ui->ledit_bank->hasFocus()){
QString oldtext = ui->ledit_bank->text();
oldtext.append(text);
ui->ledit_bank->setText(oldtext);
}
else if(ui->ledit_phone->hasFocus()){
QString oldtext = ui->ledit_phone->text();
oldtext.append(text);
ui->ledit_phone->setText(oldtext);
}
}
原码下载
https://download.youkuaiyun.com/download/qq_24972973/11150091