#include "DialogSoftKeyboardNumber.h" #include "ui_DialogSoftKeyboardNumber.h" #include "DialogSoftKeyboard.h" DialogSoftKeyboardNumber::DialogSoftKeyboardNumber(QWidget *parent) : QWidget(parent), ui(new Ui::DialogSoftKeyboardNumber) { ui->setupUi(this); input = nullptr; } DialogSoftKeyboardNumber::~DialogSoftKeyboardNumber() { delete ui; } void DialogSoftKeyboardNumber::setInput(DialogSoftKeyboard *input) { this->input = input; } void DialogSoftKeyboardNumber::setBtns(QList btns) { this->btns = btns; } void DialogSoftKeyboardNumber::setSpacing(int spacing) { ui->widgetNumberLeft->layout()->setSpacing(spacing); ui->widgetNumberRight->layout()->setSpacing(spacing); } void DialogSoftKeyboardNumber::initClicked() { //关联信号槽 直接用主界面的按钮 if (this->btns.count() >= 4) { connect(ui->btnDelete, SIGNAL(clicked(bool)), this->btns.at(0), SLOT(click())); connect(ui->btnSpace, SIGNAL(clicked(bool)), this->btns.at(1), SLOT(click())); connect(ui->btnEnter, SIGNAL(clicked(bool)), this->btns.at(2), SLOT(click())); connect(ui->btnClose, SIGNAL(clicked(bool)), this->btns.at(3), SLOT(click())); } QList btns; btns = ui->widgetNumber->findChildren(); input->initBtn(btns); btns = ui->widgetNumberLeft->findChildren(); foreach (QPushButton *btn, btns) { connect(btn, SIGNAL(clicked(bool)), this, SLOT(btnClicked())); } } void DialogSoftKeyboardNumber::btnClicked() { QPushButton *btn = (QPushButton *)sender(); input->sendEvent(4, btn->text()); }