【发布时间】:2013-07-22 12:30:22
【问题描述】:
我制作了一些 QPushbuttons,例如 QPushButton **btn,我想知道用户何时使用 QMouseEvent 点击其中一个按钮,这是代码,但这个想法根本没有任何想法??
无效游戏::mousePressEvent(QMouseEvent *ev) {
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信号连接到插槽以处理点击?也许您应该以这种方式处理您的逻辑并引用指向您单击的按钮以更改背景颜色的指针。 -
为什么不使用这样的东西:stackoverflow.com/questions/12292592/…?
-
我的问题不在样式表中...