我可以将QCursor设置为GLWidget的中心,即使该GLWidget位于布局或拆分器中也是如此。但是,我想用qPainter在2D中绘制一些东西,而不是设置光标形状-在屏幕中央。
我无法将QRect对准屏幕中心-相同的值将椭圆置于GLWidget的右下角。为什么在两种情况下这些中心坐标都不起作用?
void GLWidget::paintEvent(QPaintEvent *)
{
if (selCam->camType->val_s == "fps")
{
QPoint p = mapFromGlobal(QCursor::pos());
fpsCenter = mapToGlobal(QPoint(width() / 2, height() / 2));
//fpsCenter = 738, 549
QCursor::setPos(fpsCenter);
}
//other rendering
if (selCam->camType->val_s == "fps")
{
QRect rectAim(10, 10, 20, 20);
rectAim.moveCenter(fpsCenter);
painter.setPen(Qt::black);
painter.drawEllipse((rectAim));
}
}
最佳答案
我认为问题在于您为画家使用了全局坐标,但是应该使用相对坐标。因此,您必须在视口或小部件的中心移动矩形,即:
rectAim.moveCenter(rect().center());
关于c++ - 尽管QCursor具有相同的值,但QRect无法在小部件中居中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24536264/