LINUX.ORG.RU

История изменений

Исправление EXL, (текущая версия) :

Я не знаю, что ты там пытаешься сделать, но слоты работают таким образом (старый синтаксис):

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QPushButton *pushButtons[100];
    for (int i = 0; i < 100; ++i) {
        pushButtons[i] = new QPushButton(this);
        pushButtons[i]->setText(QString("butt%1").arg(i));
        pushButtons[i]->setProperty("index", i);
        ui->gridLayout->addWidget(pushButtons[i], i % 10, i / 10);
        connect(pushButtons[i], SIGNAL(clicked(bool)), this, SLOT(MySlot(bool)));
    }
}

void MainWindow::MySlot(bool)
{
    QString buttonText = qobject_cast<QPushButton*>(QObject::sender())->text();
    QString index = QObject::sender()->property("index").toString();
    ui->label->setText(QString("Btn name: ") + buttonText + QString(" index: ") + index);
}

Исправление EXL, :

Я не знаю, что ты там пытаешься сделать, но слоты работают таким образом (старый синтаксис):

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QPushButton *pushButtons[100];
    for (int i = 0; i < 100; ++i) {
        pushButtons[i] = new QPushButton(this);
        pushButtons[i]->setText(QString("butt%1").arg(i));
        pushButtons[i]->setProperty("index", i);
        ui->gridLayout->addWidget(pushButtons[i], i % 10, i / 10);
        connect(pushButtons[i], SIGNAL(clicked(bool)), this, SLOT(MySlot(bool)));
    }
}

void MainWindow::MySlot(bool)
{
    qDebug() << QObject::sender()->property("index");
    QString buttonText = qobject_cast<QPushButton*>(QObject::sender())->text();
    QString index = QObject::sender()->property("index").toString();

    ui->label->setText(QString("Btn name: ") + buttonText + QString(" index: ") + index);
}

Исходная версия EXL, :

Я не знаю, что ты там пытаешься сделать, но слоты работают таким образом: