我正在使用Qt,我想要显示一个图像,我在QGraphicsView中显示它,因为图像大于我使用的QGraphicsView的盒子尺寸
ui->graphicsView->fitInView(viewraw->itemsBoundingRect() ,Qt::KeepAspectRatio);
其中viewraw包含pixmap地址到我的图像,我的问题超大图像已经解决了,但我的新问题现在是Qt自动调整大小后的图像显示非常非常糟糕的质量,它非常非常模糊
我该怎么办?
有没有办法在盒子里显示图像,没有质量损失?
谢谢!
答案 0 :(得分:3)
您应该尝试启用抗锯齿功能:
ui->graphicsView->setRenderHints(QPainter::Antialiasing
| QPainter::SmoothPixmapTransform
| QPainter::TextAntialiasing);
<小时/> 您可以在包含视图的布局上使用
QLayout::setSizeConstraint(QLayout::SetFixedSize)
,以调整父窗口小部件的大小以适合视图。大小将是视图sceneRect()
函数返回的大小。
例如,以下代码将调整QMainWindow
的大小(并锁定大小),以便两个项都可见:
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow mainWindow;
QGraphicsView *view = new QGraphicsView(&mainWindow);
QGraphicsScene *scene = new QGraphicsScene(view);
view->setScene(scene);
mainWindow.layout()->setSizeConstraint(QLayout::SetFixedSize);
mainWindow.setCentralWidget(view);
mainWindow.show();
scene->addRect(-100,-100,10,10, QPen(), Qt::red );
scene->addRect(600,450,10,10, QPen(), Qt::blue );
return a.exec();
}
或者,因为您正在使用设计师,