您应该尝试启用抗锯齿:
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();
}
或者,由于您使用的是设计器,
- 在小部件树中,转到图形视图的父项,它应该有一个布局,
- 如果没有(如果图标是这个:),通过左键单击项目名称添加一个,然后在“布局”菜单中选择一种布局(如果您只有一个小部件,布局类型无关紧要,只需选一个),
- 然后转到同一项目的属性面板中的最后一个选项,应该是“layoutSizeConstraint”并选择选项“SetFixedSize”。