Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QGraphicsView中的平滑Pixmap转换不起作用_C++_Qt_Antialiasing_Qgraphicsview_Aliasing - Fatal编程技术网

C++ QGraphicsView中的平滑Pixmap转换不起作用

C++ QGraphicsView中的平滑Pixmap转换不起作用,c++,qt,antialiasing,qgraphicsview,aliasing,C++,Qt,Antialiasing,Qgraphicsview,Aliasing,注意:不适用于我 我正在尝试对QGraphicsView启用抗锯齿和/或平滑pixmap转换。以下是整个程序。它成功地以20%的比例显示图像,但没有任何平滑 在我看过的所有地方,似乎设置QGraphicsPixmapItem的转换模式和QGraphicsView的渲染提示就足够了,但在我的情况下这两种方法都不起作用 GraphicsView.pro main.cpp #包括 #包括 #包括 #包括 #包括 #包括 int main(int argc,char*argv[]) { 质量保证申请a(

注意:不适用于我

我正在尝试对QGraphicsView启用抗锯齿和/或平滑pixmap转换。以下是整个程序。它成功地以20%的比例显示图像,但没有任何平滑

在我看过的所有地方,似乎设置QGraphicsPixmapItem的转换模式和QGraphicsView的渲染提示就足够了,但在我的情况下这两种方法都不起作用

GraphicsView.pro

main.cpp

#包括
#包括
#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
qmain窗口;
QsCENE场景;
QGraphicsView视图;
QX资本项目;
QPixmap;
加载(“../textures/image.jpg”);
item.setTransformationMode(Qt::SmoothTransformation);
项目.setPixmap(pixmap);
场景。添加项(&项);
视图。设置场景(和场景);
view.SetRenderInts(QPaint::抗锯齿| QPaint::SmoothPixmapTransform);
视图.比例(0.2,0.2);
window.setCentralWidget(&view);
window.show();
返回a.exec();
}

您的问题是“为什么图像不平滑?”是“为什么图像的比例为20%”还是“为什么图像不平滑?”虽然效果很小,但确实有效。比较两个屏幕截图,一个是快速转换,另一个是平滑转换。我通过使用
Qt.SmoothTransformation
创建一个新的pixmap来解决这个问题。
QT += core gui widgets
SOURCES += main.cpp
#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QGraphicsPixmapItem>
#include <QMainWindow>
#include <QPixmap>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QMainWindow window;
    QGraphicsScene scene;
    QGraphicsView view;
    QGraphicsPixmapItem item;
    QPixmap pixmap;

    pixmap.load("../textures/image.jpg");
    item.setTransformationMode(Qt::SmoothTransformation);
    item.setPixmap(pixmap);
    scene.addItem(&item);
    view.setScene(&scene);
    view.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
    view.scale(0.2, 0.2);
    window.setCentralWidget(&view);
    window.show();

    return a.exec();
}