如何使用Qt实现纯数字键盘
include "keyboard.h" #include "ui_keyboard.h"
include
include
keyboard::keyboard(QWidget parent) : QDialog(parent), ui(new Ui::keyboard)
{
this->setWindowFlags(Qt::FramelessWindowHint);
this->setWindowModality(Qt::ApplicationModal);
ui->setupUi(this);
this->setWindowTitle("设置值");
QPushButton groupbtn[13]={ui->m_zinum1,ui->m_zinum2,ui->m_zinum3,ui->m_zinum4,
ui->m_zinum5,ui->m_zinum6,ui->m_zinum7,ui->m_zinum8,
//实现纯数字键盘的代码
QList<QPushButton *> buttons = this->findChildren<QPushButton *>();
for (int i = 0; i < buttons.size(); ++i) {
if (buttons[i]->text() == "0" ||
buttons[i]->text() == "1" ||
buttons[i]->text() == "2" ||
buttons[i]->text() == "3" ||
buttons[i]->text() == "4" ||
buttons[i]->text() == "5" ||
buttons[i]->text() == "6" ||
buttons[i]->text() == "7" ||
buttons[i]->text() == "8" ||
buttons[i]->text() == "9")
{
connect(buttons[i],SIGNAL(clicked()),this,SLOT(EnterValue()));
}
}
}
//按下数字键向文本框输入数字
void keyboard::EnterValue()
{
QPushButton* clickedButton = qobject_cast(sender());
if(clickedButton != NULL){
QString text = clickedButton->text();
if (lineEdit && text.size() == 1){
int iValue = text.toInt();
lineEdit->insert(QString::number(iValue));
emit EnterClicked();
}
}
}