qt creator制作软键盘例子

qt creator制作软键盘例子  

2012-06-06 10:15:46|  分类: 默认分类 |  标签: |字号 订阅

触摸屏需要一个软键盘以输入,利用QT可以很快的编写这个软键盘。

目的:编写一个能够输入小数、负数等软键盘。在主窗口上有一个界面,界面上有一个按钮和显示模块,当按下按钮时,软键盘打开,此时软件盘必须置顶,且点击面板其他部分无效,待输入完毕,按确认退出,并在主窗口上显示刚刚接收到的数。

分析:关键点。1、两个UI之间如何传数。2、软键盘应运行在何种状态能达到上述效果。3、软键盘按键的槽如何写最简便的取数。

解决:1、两个UI传数可以用函数返回值的方式,这个可以参看我的另一篇博文。具体的是在软键盘的程序中写一个returnvalue();返回输入完毕后输入的数,在主窗口函数中调用该函数,得到返回值。

public:

QString returnValue();//keyboard.h声明

 

QString KeyBoard::returnValue()

{

exec();

return inputBuf;

}//keyboard.cpp返回输入值

 

KeyBoard v_keyB(this);

QString ret = v_keyB.returnValue();//mainwindow.cpp调用该函数,取得返回值

 

2、exec();消息循环调用,它是软键盘成为模态对话框,模态对话框(Modal Dialogue Box,又叫做模式对话框),是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击【确定】或【取消】按钮等将该对话框关闭。

exec()程序进入消息循环,等待可能输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候exec()的值就会返回。在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。done/reject/accept可以结束它。

QString KeyBoard::returnValue()

{

exec();//消息循环

return inputBuf;

}//keyboard.cpp

 

void KeyBoard::on_pushButton_yes_clicked()

{

KeyBoard v_keyB(this);

inputBuf = StrBuf;

if(inputBuf==""){inputBuf = "no_value";}

int length = inputBuf.size();

if(inputBuf[length-1]=='.')

{

inputBuf.remove(length-1,1);

}

done(2);

}//keyboard.cpp按确认时则结束exec()

3、利用字符串拼接方式是最简便的。

void KeyBoard::on_pushButton_1_clicked()

{

m_ui->lineEdit_keyB->setText("");//清屏

StrBuf += QString::number(1);//把字符1接到BUFFER中

if(StrBuf[0] == '0'&&zero_flag==1&&StrBuf[1] != '.')

{

StrBuf.remove(0,1);

}//判断0是否为首位,是首位且后无小数点则去掉

m_ui->lineEdit_keyB->setText(StrBuf);

}//显示

效果:

qt creator制作软键盘例子 - 烟雨弄江寒 - 583695099的博客

qt creator制作软键盘例子 - 烟雨弄江寒 - 583695099的博客

 

qt creator制作软键盘例子 - 烟雨弄江寒 - 583695099的博客

 

qt creator制作软键盘例子 - 烟雨弄江寒 - 583695099的博客

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值