Как я могу подключить несколько сигналов с одним слотом или лучше, что не так в моем коде? - PullRequest
0 голосов
/ 08 июля 2019

Я работаю с QT-Creator 5.12.3, и я создал сенсорную клавиатуру с инструментом для терминала. На моей клавиатуре у меня 57 кнопок, 1 кнопка и 56 кнопок. Я думаю, у меня все готово, но я получаю ошибку при подключении кнопок к слоту, поэтому, пожалуйста, скажите мне, что я сделал не так. Я прочитал https://doc.qt.io/archives/qq/qq10-signalmapper.html, но не вижу ошибки.

Слот tastatur.cpp:

void Tastatur::pushButton_clicked()
{

QObject *senderObj = QObject::sender();
QString senderName = senderObj->objectName();

// The name of all buttons is toolbuttonxx or pushbuttonxx the xx stay for 
// a number(11-69), i cut the toolbutton or pushbutton away that i have only 
// the number xx 
QString subString = senderName.mid(10, 2);
int buttonnummer = subString.toInt();
switch(buttonnummer)
{
    case 11:
        if(shift == 0)
            shift = 1;
        else
            shift = 0;
        break;
    case 12:
        text = text + "\"";   //text is a global string variable
        break;
     ...
    case 66://Exit
        this->reject();
        break;
    case 67://Del;
        text.chop(1);
        break;
    case 68://Enter
        this->accept();
        emit enterButtonTastaturClick();
        break;
    }
}

Кнопки инициализации и подключения

Tastatur::Tastatur(QWidget *parent) : QDialog(parent), ui(new Ui::Tastatur)
{
ui->setupUi(this);
ui->setupUi(this);
QToolButton toolbutton11;
QPushButton pushbutton12, pushbutton13, ... , pushbutton69;

connect(toolbutton11, SIGNAL(clicked()), this, SLOT(button_clicked)); //Error no matching member function for call to connect
connect(pushbutton12, SIGNAL(clicked()), this, SLOT(button_clicked)); //Error no matching member function for call to connect
...
connect(pushbutton69, SIGNAL(clicked()), this, SLOT(button_clicked)); //Error no matching member function for call to connect
}

Редактировать: Лучшее структурирование вопроса и завершение кода

...