软件需要在仪器上面跑,故需要设计一个虚拟键盘来实现用户的输入。
实现思路比较简单,键盘上各个字母数字由一个个Btn组成,通过QT的信号槽机制来达到用户点击各个按钮来触发信号,从而实现模拟键盘点击。键盘UI如下
简易键盘UI如图所示,1-9 a-z 以及点击Caps来达到切换大小写的功能。
Caps点击代码(QT信号槽)
static bool bCaps=false; //用来做标识
if(bCaps)
{
ui->btnA->setText("a");
ui->btnB->setText("b");
ui->btnC->setText("c");
ui->btnD->setText("d");
。。。。。
bCaps=false;
}
else
{
ui->btnA->setText("A");
ui->btnB->setText("B");
ui->btnC->setText("C");
ui->btnD->setText("D");
....
bCaps=true;
}
UI最上方的输入框对应用户的每次点击,所有的数字,字母都对应同一个槽函数。
if(ui->inputEdit==NULL)
{
return;
}
QString str=ui->inputEdit->text();
QPushButton *btn=(QPushButton *)this->focusWidget(); //取到用户点击的按钮
str+=btn->text();//拿到用户点击按钮的Text
ui->inputEdit->setText(str);//赋值给输入框
}
一个简易的虚拟键盘的输入就实现啦