我在 qt 中有一个加载图像的应用程序。用户可以通过使用 setPixel() 移动滑块来设置十字。如果他减小滑块,十字应该变小并且应该显示原始像素。
但不幸的是,当我减小滑块时没有任何反应。十字架保持其最大尺寸。
设置像素的函数
void ImageViewer::applyExampleAlgorithm(int kreuzBreite)
{
if(image!=NULL)
{
for(int i=0;i<((kreuzBreite*std::min(image->width(), image->height())/ 100) / 2);i++)
{
image->setPixelColor(image->width()/2+i,image->height()/2,QColor(255,0,0,0));
image->setPixelColor(image->width()/2-i,image->height()/2,QColor(255,0,0,0));
image->setPixelColor(image->width()/2,image->height()/2+i,QColor(255,0,0,0));
image->setPixelColor(image->width()/2,image->height()/2-i,QColor(255,0,0,0));
}
}
updateImageDisplay();
renewLogging();
}
我的滑块
QSlider *slider1 = new QSlider(Qt::Horizontal,0);
slider1->setRange(0,100);
connect(slider1, SIGNAL(valueChanged(int)),this, SLOT(applyExampleAlgorithm(int)));
如您所见,值发生了变化,但我的十字架没有。
我想我必须保存原始像素并重写它,只要此时红十字消失。但我真的不知道怎么做。