Qt:setScreenRect=分段故障
Qt: setScreenRect = segfault
基本上我需要一些东西来绘制,它很容易与设计器一起使用(例如,从QWidget继承和覆盖paintEvent需要在Qt设计器中使用它)。
因此,我将QGraphicsView添加到.ui文件中,并在按钮方法中编写这样的代码:
QGraphicsScene *scene = ui->graphicsView->scene();
const QRectF scene_r = ui->graphicsView->sceneRect();
//here I see that scene_r == {0, 0, 0, 0};
然后我添加这样的代码:
const QSize draw_size = ui->graphicsView->size();
//draw_size == {100, 100}
scene->setSceneRect(QRectF(0, 0, draw_size.width(), draw_size.height()));
并在scene->setSceneRect
线上得到segfault这里发生了什么?
实际上我想要正确的这样的代码:
//scene size == draw_size
QPixmap pix(draw_size.width(), draw_size.height());
//fill pix with external program
scene->addPixmap(map_pix);
有可能吗?
我以前从未使用过QGraphicsView。
获得segfault的原因是您没有为视图设置任何场景,因此scene()将返回一个空指针。
QGraphicsScene scene;
QGraphicsView view(&scene);
view.show();
另一种选择是创建没有场景的视图,然后稍后添加:
void setScene(QGraphicsScene *scene)
参考:http://doc.qt.io/qt-5/qgraphicsview.html
相关文章:
- 分段故障(堆芯转储)矢量
- 数组的指针从不分段故障
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 分段故障 运行C++代码时出现 SIGSEGV
- 分段故障背包问题
- 分段故障 11,从类函数显示动态 C 字符串
- 面临分段故障 使用 ffmpeg 读取视频时,因为"pFormatCtx-> streams [i]-> codecpar"的地址0x00
- 在C++中,当指向删除和指向不同对象时,分段故障指针
- 分段故障说明
- 分段故障(核心转储)-不知道为什么
- 分段故障线程
- hiredis SET遇到分段故障
- 分段故障,合并排序算法
- 多线程程序中的分段故障和gdb回溯上的不完整信息
- 到达主C++之前分段故障
- 分段故障核心使用 IF流转储
- 使用向量的移动键盘排列(分段故障)
- 在二进制树插入和遍历期间,我得到了分段故障
- 分段故障在类之间返回整数
- C++分段故障BST