目的:在子QWidget上面画点
解决方法:使用事件过滤器 或者 从QWidget派生出一个类重写paintEvent
首先在 构造函数里面声明QWidget
MyDialog::MyDialog()
{
m_pWidget = new QWidget(this);
m_pWidget->installEventFilter(this);
}
当事件发送过来,我们使用eventFilter来处理事件。
<span style="font-size:24px;">bool MyDialog::eventFilter(QObject *watched, QEvent *e) {
if (watched == m_pWidget) {
if (e->type() == QEvent::Paint) {
paintOnWidget(m_pWidget); // 自定义函数
return true;
}
}
return QWidget::eventFilter(watched, e);
}</span>
我们使用自己定义的函数paintOnWidget,来给m_pWidget画图
没明白可以下载下demo:http://download.csdn.net/detail/c3060911030/9423056
环境Qt5.5.1