C++ QGraphicsView中的平滑Pixmap转换不起作用
注意:不适用于我 我正在尝试对QGraphicsView启用抗锯齿和/或平滑pixmap转换。以下是整个程序。它成功地以20%的比例显示图像,但没有任何平滑 在我看过的所有地方,似乎设置QGraphicsPixmapItem的转换模式和QGraphicsView的渲染提示就足够了,但在我的情况下这两种方法都不起作用 GraphicsView.pro main.cppC++ 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(
#包括
#包括
#包括
#包括
#包括
#包括
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();
}