qt - 从 Qt4 移植到 Qt5,Qt::WA_PaintOutsidePaintEvent 不再存在
问题描述
从 Qt4 移植到 Qt5 时,有一个类 GraphWidget,它继承自类 QWidget。
m_plot = new QwtPlot(this);
ui->verticalLayout->addWidget(m_plot);
……
m_directPainter = new QwtPlotDirectPainter(m_plot->canvas());
m_plot->canvas()->setAttribute(Qt::WA_PaintOutsidePaintEvent, true);
……
m_directPainter.drawSeries(……);
该属性Qt::WA_PaintOutsidePaintEvent
不再存在。我应该怎么做才能使 m_directPainter 正常工作?
正如我从 Qt5 文档中了解到的那样,我应该实现paintEvent()
函数并在那里调用painter
吗?
解决方案
Qt::WA_PaintOutsidePaintEvent
引入以允许将 Qt3 程序移植到 Qt4。Qt4 小部件只能从 绘制paintEvent()
,因此在 Qt5 中删除了该属性(好主意!)。因此,您应该将所有绘画代码转移到派生paintEvent()
方法。
推荐阅读
- spring - 使用 Spring Batch 和 Spring Boot 2.2.5 时无法从 xml 配置注册自定义 LineMapper
- rest - 如何通过邮递员使用 REST 调用在 SharePoint 2019 上创建文件夹?得到 403:禁止错误
- python - 仅用于其中一个子图的 matplotlib 颜色图
- java - 找不到符号方法 printIn(字符串)位置:变量超出类型 PrintStream -java 编译错误
- python - 扁平化 JSON 以进行分析
- javascript - 拖动点时更新数据
- python - 使用 numpy 数组进行寻路
- swift - 在 Swift 中使用 self 和性能
- c# - 无法第二次加入房间 | 光子统一网络 2
- sharepoint - 如何将 SharePoint Web 部件与 Teams 同步?