创建QT QList时崩溃

问题描述 投票:0回答:1

我正在尝试创建一个 QLine 类型的简单 QT QList,但每次在 Windows 上编译和运行它时都会出现异常:enter image description here

代码在一个QGraphicsScene的drawBackground函数中,构造如下:

GraphicsScene::GraphicsScene(QGraphicsScene *parent) : QGraphicsScene(parent) {
}


Main code:

void GraphicsScene::drawBackground(QPainter *painter, const QRectF& rect) {
    QGraphicsScene::drawBackground(painter, rect);

    try {
        QList<QLine> lines;
        QLine line_that_crashes = QLine(0, 0, 100, 100);
        lines.append(line_that_crashes);
   }
   catch (const std::exception& e) {
       std::cout << "I caught : " << e.what ();
   }
   catch (...) {
     std::cout << "Unknown exception";
  }

}

如您所见,我尝试将调用包装在 try/catch 中,但它仍然生成异常。

c++ qt qt6
1个回答
0
投票

根据我的经验,此类错误通常是由“数组越界”或“空指针”引起的。当你尝试调试它时,调试器经常在最深处中断,但这并不意味着Qt库函数有bug(概率很低)。您需要检查函数调用堆栈并查看谁在调用

GraphicsScene::drawBackground
,直到到达您编写的代码部分,因为错误通常就在那里。

© www.soinside.com 2019 - 2024. All rights reserved.