Я сделал некоторые QPushbuttons, такие как QPushButton ** btn, и я хочу знать, когда пользователь нажимает на один из них, используя QMouseEvent, вот код, но эта идея не работает вообще ни с какими идеями? ?Как использовать mousePressEvent на QPushButtons
недействительных игр :: mousePressEvent (QMouseEvent * эв) {
if(ev->button() == Qt::LeftButton)
{
btn[ev->x()][ev->y()].setStyleSheet("background-color : black;");
}
else
{
btn[ev->x()][ev->y()].setStyleSheet("background-color : red;");
}
что еще часть для правой кнопки мыши и вот код, который генерирует кнопку
void Game::MakeButton()
{
btn = new ApButton*[column];
hrztl = new QHBoxLayout[column];
hrztl->setSpacing(0);
for(int i=0; i<column;i++)
{
btn[i] = new ApButton[row];
for(int j=0; j<row; j++)
{
btn[i][j].setRowCol(i,j);
btn[i][j].setFixedSize(50,50);
hrztl[i].addWidget(&btn[i][j]);
}
ui->MainLayout->addLayout(&hrztl[i]);
}
ui->MainLayout->setSpacing(0);
}
ApButton является класс, который наследует QPushButton
Вы пытались подключить сигнал 'clicked' к слоту для обработки кликов?Возможно, вы должны обработать свою логику таким образом и указать указатель на кнопку, которую вы нажали, чтобы изменить цвет фона. –
Почему бы не использовать что-то вроде этого: http://stackoverflow.com/questions/12292592/qt-stylesheet-for-custom-button-on-mouse-hovered-and-clicked? – Mat
моя проблема не в таблице стилей ... – Aminiok