如图,卡尺(gview,ghview)与视图(graphicsview)之间要无空隙,用setContentMagin和SetSpacing都不起作用,具体代码如下
graphicsView = new QGraphicsView;
graphicsView->setRenderHint(QPainter::Antialiasing, false);
graphicsView->setDragMode(QGraphicsView::RubberBandDrag);
graphicsView->setOptimizationFlags(QGraphicsView::DontSavePainterState);
graphicsView->setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
graphicsView->setFixedWidth(500);
graphicsView->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
graphicsView->setContentsMargins(0,0,0,0);
gview = new QGraphicsView();
gview->horizontalScrollBar()->hide();
gview->verticalScrollBar()->hide();
gview->setScene(mainwindow->scene[2]);
gview->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
gview->setFixedWidth(100);
gview->setContentsMargins(0,0,0,0);
ghview = new QGraphicsView();
ghview->horizontalScrollBar()->hide();
ghview->verticalScrollBar()->hide();
ghview->setScene(mainwindow->scene[3]);
ghview->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
ghview->setFixedHeight(100);
ghview->setContentsMargins(0,0,0,0);
int size = style()->pixelMetric(QStyle::PM_ToolBarIconSize);
QSize iconSize(size, size);
QToolButton *zoomInIcon = new QToolButton;
zoomInIcon->setAutoRepeat(true);
zoomInIcon->setAutoRepeatInterval(33);
zoomInIcon->setAutoRepeatDelay(0);
zoomInIcon->setIcon(QPixmap(":/zoomin.png"));
zoomInIcon->setIconSize(iconSize);
QToolButton *zoomOutIcon = new QToolButton;
zoomOutIcon->setAutoRepeat(true);
zoomOutIcon->setAutoRepeatInterval(33);
zoomOutIcon->setAutoRepeatDelay(0);
zoomOutIcon->setIcon(QPixmap(":/zoomout.png"));
zoomOutIcon->setIconSize(iconSize);
zoomSlider = new QSlider;
zoomSlider->setMinimum(0);
zoomSlider->setMaximum(500);
zoomSlider->setValue(250);
zoomSlider->setTickPosition(QSlider::TicksRight);
// Zoom slider layout
QVBoxLayout *zoomSliderLayout = new QVBoxLayout;
zoomSliderLayout->addWidget(zoomInIcon);
zoomSliderLayout->addWidget(zoomSlider);
zoomSliderLayout->addWidget(zoomOutIcon);
zoomSliderLayout->setContentsMargins(0,0,0,0);
QToolButton *rotateLeftIcon = new QToolButton;
rotateLeftIcon->setIcon(QPixmap(":/rotateleft.png"));
rotateLeftIcon->setIconSize(iconSize);
QToolButton *rotateRightIcon = new QToolButton;
rotateRightIcon->setIcon(QPixmap(":/rotateright.png"));
rotateRightIcon->setIconSize(iconSize);
rotateSlider = new QSlider;
rotateSlider->setOrientation(Qt::Horizontal);
rotateSlider->setMinimum(-360);
rotateSlider->setMaximum(360);
rotateSlider->setValue(0);
rotateSlider->setTickPosition(QSlider::TicksBelow);
// Rotate slider layout
QHBoxLayout *rotateSliderLayout = new QHBoxLayout;
rotateSliderLayout->addWidget(rotateLeftIcon);
rotateSliderLayout->addWidget(rotateSlider);
rotateSliderLayout->addWidget(rotateRightIcon);
rotateSliderLayout->setContentsMargins(0,0,0,0);
resetButton = new QToolButton;
resetButton->setText(tr("0"));
resetButton->setEnabled(false);
// Label layout
QHBoxLayout *labelLayout = new QHBoxLayout;
label = new QLabel(name);
antialiasButton = new QToolButton;
antialiasButton->setText(tr("Antialiasing"));
antialiasButton->setCheckable(true);
antialiasButton->setChecked(false);
openGlButton = new QToolButton;
openGlButton->setText(tr("OpenGL"));
openGlButton->setCheckable(true);
#ifndef QT_NO_OPENGL
openGlButton->setEnabled(QGLFormat::hasOpenGL());
#else
openGlButton->setEnabled(false);
#endif
printButton = new QToolButton;
printButton->setIcon(QIcon(QPixmap(":/fileprint.png")));
//labelLayout->addWidget(tablewidget);
labelLayout->addWidget(label);
labelLayout->addStretch();
labelLayout->addWidget(antialiasButton);
labelLayout->addWidget(openGlButton);
labelLayout->addWidget(printButton);
labelLayout->setContentsMargins(0,0,0,0);
QGridLayout *topLayout = new QGridLayout;
topLayout->setSpacing(0);
topLayout->setContentsMargins(0,0,0,0);
topLayout->setHorizontalSpacing(0);
topLayout->setVerticalSpacing(0);
topLayout->addLayout(labelLayout, 0, 2);
topLayout->addWidget(graphicsView, 1, 1);
topLayout->addWidget(gview, 1, 0);
topLayout->addWidget(ghview,0,1);
topLayout->addLayout(zoomSliderLayout, 1, 2);
topLayout->addLayout(rotateSliderLayout, 2, 1);
topLayout->addWidget(resetButton, 2, 1);
setLayout(topLayout);
timer = new QTimer(this);
请帮助一下