一、演示效果
二、关键程序
关键槽函数代码如下:
ivoid NumKeyboard::slotNumClick()
{
m_strText = ui.lineEdit->text();
QPushButton *btn = qobject_cast<QPushButton *>(sender());
QString strObjectName = sender()->objectName();
if (strObjectName == QString("btnLeft"))
{
int idx = ui.lineEdit->cursorPosition();
if (idx == 0)
{
ui.lineEdit->setCursorPosition(idx);
ui.lineEdit->setFocus();
return;
}
m_strText.remove(idx - 1, 1);
ui.lineEdit->setText(m_strText);
}
else if (strObjectName == QString("btnPoint"))
{
int idx = ui.lineEdit->cursorPosition();
m_strText.insert(idx, QString("."));
ui.lineEdit->setText(m_strText);
ui.lineEdit->setCursorPosition(idx + 1);
}
else
{
for (size_t i = 0; i < 10; i++)
{
QString strName = QString("btn%1").arg(i);
if (strName == strObjectName)
{
//光标的位置索引
int idx = ui.lineEdit->cursorPosition();
m_strText.insert(idx,QString("%1").arg(i));
ui.lineEdit->setText(m_strText);
ui.lineEdit->setCursorPosition(idx + 1);
break;
}
}
}
ui.lineEdit->setFocus();
}
三、代码链接
程序链接
https://download.csdn.net/download/u013083044/82588476