Я нашел функцию, чтобы сделать QImage ярче и использоваться в моем приложении Qt. Я хочу показать простую «анимацию», делая кнопку шаг за шагом ярче, и снова шаг за шагом назад в начальное состояние после того, как пользователь щелкнул по ней.Изменение яркости значка QPushButton
Вот мой код:
void Widget::on_stopButton_clicked(){
player.stop();
for(int i = 0; i <= 50; ++i){
QImage* image = new QImage(":/Graphics/Graphics/StopButton.png");
changeBrightness(*image, i);
QPixmap* pixmap = new QPixmap(QPixmap::fromImage(*image));
ui->stopButton->setIcon(QIcon(*pixmap));
QThread::msleep(50);
}
}
Это не работает, как я ожидал ... я вижу только конечный эффект, поэтому последний вызов: changeBrightness (* изображение, 50);
Кажется, что пользователь может видеть изменения в форме только после окончания функций, правильно? Есть ли другой способ сделать такую «анимацию»?
Вам не нужно создавать 'QImage' и' QPixmap' с новым оператором. Вы можете создавать экземпляры в стеке. Оба поддерживают COW. –
Я изменю это, thx! – WJuz