C++ QWidget::paintEngine:不应再在QTreeWidget派生类中调用
我有一个类,C++ QWidget::paintEngine:不应再在QTreeWidget派生类中调用,c++,qt,qt5,qpainter,qtreewidget,C++,Qt,Qt5,Qpainter,Qtreewidget,我有一个类,MyTree,它派生自QTreeWidget和 void MyTree::paintEvent(QPaintEvent *event) { QPainter painter(this); } 引发了以下问题, QWidget::paintEngine:不应再被调用 QPaint::begin:绘制设备返回的引擎==0,类型:1 有人能帮我解决这个问题吗?如果类继承自as和您的MyTree小部件中,绘画不是直接给出的,而是文档中指出的: void QAbstractScrol
MyTree
,它派生自QTreeWidget
和
void MyTree::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
}
引发了以下问题,
QWidget::paintEngine:不应再被调用
QPaint::begin:绘制设备返回的引擎==0,类型:1
有人能帮我解决这个问题吗?如果类继承自as和您的
MyTree
小部件中,绘画不是直接给出的,而是文档中指出的:
void QAbstractScrollArea::重新实现了paintEvent(QPaintEvent*event)
来自QFrame::paintEvent()。
此事件处理程序可以在子类中重新实现以接收绘制
viewport()小部件的事件(在事件中传递)
注意:如果打开画师,请确保在视口()上打开它
因此,解决方案如下:
void MyTree::paintEvent(QPaintEvent *event)
{
QPainter painter(viewport());
}
对于从as和您的
MyTree
继承的类,绘制不是直接在小部件中给出的,而是在文档中指出的:
void QAbstractScrollArea::重新实现了paintEvent(QPaintEvent*event)
来自QFrame::paintEvent()。
此事件处理程序可以在子类中重新实现以接收绘制
viewport()小部件的事件(在事件中传递)
注意:如果打开画师,请确保在视口()上打开它
因此,解决方案如下:
void MyTree::paintEvent(QPaintEvent *event)
{
QPainter painter(viewport());
}
我找到了一个解决方案:
通过替换
QPainter painter(本)代码>
与
QPainter painter(viewport())代码>
问题解决了。我找到了一个解决方案:
通过替换
QPainter painter(本)代码>
与
QPainter painter(viewport())代码>
问题解决了。@BandulaDharmadasa全部功劳将归于。;-)@班杜拉·达尔马达萨的全部功劳将归于.-)