アンチエイリアシングを有効にしてみてください:
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();
}
または、デザイナーを使用しているため、
- ウィジェット ツリーで、グラフィックス ビューの親アイテムに移動します。レイアウトが必要です。
- そうでない場合 (アイコンが の場合
)、アイテム名を左クリックして追加し、[レイアウト] メニューでレイアウトを選択します (ウィジェットが 1 つしかない場合は、レイアウトの種類は関係ありません。いずれかを選択)、
- 次に、同じ項目のプロパティ パネルの最後のオプション (「layoutSizeConstraint」である必要があります) に移動し、「SetFixedSize」オプションを選択します。