按下QPushButton时刷新QPushButton

时间:2016-04-13 07:50:51

标签: c++ qt

当我按下一个QPushButton时,我正在尝试刷新一些QPushButton图标,当我按下四个按钮中的一个按钮时,是否有一种方法,所有四个按钮都会更新?

void VMesa::on_mano1_clicked()
{
    Tablero* tJuego = Tablero::getInstance();
    Deck* mazo = Deck::getInstance();

    tJuego->getJActual() == 1 ? tJuego->setJActual(2) : tJuego->setJActual(1);
}

当窗口加载时,它会在四个按钮上为Icon充电,如下代码:

QPixmap pixmap = tJuego->getCartaQString(mazo->topCarta());
QIcon ButtonIcon = pixmap;
ui->campo5->setIcon(ButtonIcon);
ui->campo5->setIconSize(QSize(ui->campo5->width(), ui->campo5->height()));

当我按下四个按钮中的每个按钮时,我需要更新所有来自堆栈(Mazo)的另一个图像(来自Carta<)。非常感谢你!

1 个答案:

答案 0 :(得分:0)

关键是使用Qt的signals and slots,更确切地说是clicked()固有的信号QPushButton。如果您有4个QPushButton,我认为您必须将每个连接到不同的插槽,并在此插槽中更新另一个插槽。它看起来像这样:

connect(m_pButton1, SIGNAL(clicked()), this, SLOT(onButton1clicked()));

...

void VMesa::onButton1clicked()
{
    //set icons for the other 3 buttons
}