首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过移动滑块撤消qt中的setPixel操作

通过移动滑块撤消qt中的setPixel操作
EN

Stack Overflow用户
提问于 2020-11-03 13:53:59
回答 1查看 55关注 0票数 0

我在qt中有一个加载图像的应用程序。用户可以通过使用setPixel()移动滑块来设置交叉。如果他减少滑块,十字架应该变小,原来的像素应该显示出来。

但不幸的是,当我减少滑块时,什么也不会发生。十字架保持最大尺寸。

函数,它设置像素

代码语言:javascript
运行
复制
    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();
    }

我的滑翔机

代码语言:javascript
运行
复制
QSlider *slider1 = new QSlider(Qt::Horizontal,0);
    slider1->setRange(0,100);
    connect(slider1, SIGNAL(valueChanged(int)),this, SLOT(applyExampleAlgorithm(int)));

正如你所看到的,价值改变了,但我的十字架没有变化。

我认为我必须保存原来的像素,并重写它,一旦红十字消失在这一点。但我真的不知道怎么做。

EN

回答 1

Stack Overflow用户

发布于 2020-11-05 08:28:12

当滑块值减少时,您的函数只会在前面绘制的较大的红十字中“绘制”一个较小的红十字。您可以将原始图像存储在不同的变量中。然后,在绘制红十字之前,恢复到原来的图像。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64664185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档