Создал свой клас MineButton, который наследует QPushButton. В нём перегрузил функцию mouseReleaseEvent.
В главной програме создаю массив обьектов типа MineButton. Каждой кнопке на начале присваиваю свойства "row" и "col" с помощью функции setProperty().
При нажатии на любую кнопку с этого массива, в функции mouseReleaseEvent необходимо узнать какая именно кнопка была нажата и считать свойства "row" и "col". Делаю это с помощью sender()->property("row").toInt();. Програма запускается,но при нажатии на кнопку вылетает.
Код класса MineButton
class MineButton:public QPushButton
{
Q_OBJECT
public:
MineButton(QWidget *parent = 0);
int row;
int col;
void mouseReleaseEvent(QMouseEvent *event);
};
конструктор класса
MineButton::MineButton(QWidget *parent):QPushButton(parent)
{
}
создание обьектов типа MineButton
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
//тут много кода
for (int i=0;i<81;i++)
{
buttons[i]=new MineButton(this);
buttons[i]->setProperty("row",i/9);
buttons[i]->setProperty("col",i%9);
}
//тут много кода
}
код функции mouseReleaseEvent
void MineButton::mouseReleaseEvent(QMouseEvent *event)
{
qDebug("mouseReleaseEvent");
MainWindow a;
row=sender()->property("row").toInt();//здесь ошибка
col=sender()->property("col").toInt();//здесь ошибка
a.Event(event,row,col);
}