软件需要在仪器上面跑,故需要设计一个虚拟键盘来实现用户的输入。

实现思路比较简单,键盘上各个字母数字由一个个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);//赋值给输入框
        }

一个简易的虚拟键盘的输入就实现啦

Logo

更多推荐