QGraphicsView 框架下显示QGraphicsItem的问题

tomzhch 2015-11-05 08:55:23
初学GraphicsView框架,试了试,创建了一个矩形的item,放在scene中,可是显示窗口后顶部总被挡住,拖动窗口后可以显示,在把窗口大小拖回刚开始的大小,就能完全显示了,不知道是什么问题,是坐标的问题吗??

拖动后可以完全显示,我设置了窗口的最小大小,下图是能显示的最小大小,和生成窗口时一样大,但是可以完全显示矩形

下面是窗口的构造函数
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent)
{
scene = new QGraphicsScene(0,0,400,600);
view = new QGraphicsView;
scene->addRect(QRectF(0, 0, 200, 200));
setCentralWidget(view);
view->setScene(scene);
createActions();
createToolBar();
setMinimumSize(450, 565);
setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum);
}
...全文
485 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
冷静忍耐 2015-11-07
  • 打赏
  • 举报
回复
滚动条设置,想看哪滚哪 horizontalScrollBar()->setValue(0); verticalScrollBar()->setValue(0);
在飞的特拉斯 2015-11-06
  • 打赏
  • 举报
回复
你可以查看这个函数

QGraphcsView::setSceneRect() 
tomzhch 2015-11-06
  • 打赏
  • 举报
回复
引用 2 楼 mqdsg 的回复:
比如改成

scene = new QGraphicsScene(0,0,400,500);
然后效果就是
也就是说因为场景设置的过大了导致居中显示时没把靠近边缘的显示出来,那有什么方法可以让GraphicsView不默认居中显示scene,而是对齐左上角显示?
在飞的特拉斯 2015-11-06
  • 打赏
  • 举报
回复
比如改成

scene = new QGraphicsScene(0,0,400,500);
然后效果就是
在飞的特拉斯 2015-11-06
  • 打赏
  • 举报
回复
因为 你初始的窗口的高比你的场景的高要小,改大些就ok了。

QGraphicsScene(0,0,400,600);
....
 setMinimumSize(450, 565);
 setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum);

21,466

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧