我有一个 QSpinBox 可以改变场景中 QImage 的颜色。一切正常。颜色正确更新。如果我按住 QSpinBox 上的箭头,一切正常。当我长时间按住 QSpinBox 上的箭头时,我确实遇到了问题。当我按住它大约一分钟左右时,我的应用程序最终会停止响应,有时图像会消失。我想知道是否有人知道可能导致这种情况的原因。我的应用程序是否有可能因信号而陷入困境?如果是这样,我该如何解决?
谢谢你的帮助!
这是一段代码。我没有包括设置每个像素值的东西。我知道我做得对。changeMinColor 是 spinbox 信号的插槽之一。
void binFileDialog::changeMinColor(double value)
{
lowColorValue = value;
ui->maxColorSpin->setMinimum(lowColorValue + .0001);
setBinScene();
}
void binFileDialog::setBinScene()
{
float lowValue = lowColorValue;
float highValue = highColorValue;
QImage img = QImage(bFile.ncols, bFile.nrows, QImage::Format_RGB32);
// go through and set call img.setPixel with rgb values based on contents of bFile
// and the min and max colors lowValue and highValue.
QPixmap pm = QPixmap::fromImage(img);
QGraphicsScene *scene = new QGraphichsScene;
ui->graphicsView->setSceneRect(0,0, bFile.ncols, bFile.nrows);
scene->addPixmap(pm);
ui->graphicsView->setScene(scene);
}
changeMinColor
连接到 QSpinBox 的valueChanged
信号:
connect(ui->minColorSpin, SIGNAL(valueChanged(double)),
SLOT(changeMinColor(double)));
我还注意到,当我按住旋转框时,我的记忆会增加。这一定是错的。我忘记了什么?再次感谢您的帮助。