问:除了子类窗口小部件之外,还有父窗口小部件类

时间:2011-02-18 21:42:00

标签: qt

越来越多这似乎是一个哲学上的Qt问题:

我有一个代表窗口A的小部件。 我有一个表示窗口的窗口小部件,源自A,名为B

B绘制它的东西,但我希望A贡献一些绘图,例如。绘制图像超过B绘制的图像。我希望B完全没有意识到这一点,除了从A派生之外,不必与{{1}}合作。

这可能吗?

2 个答案:

答案 0 :(得分:0)

我不是QT专家,但是您可以通过让A委托将其绘图添加到位于(0,0)的相同大小的子组件,以一种hacky方式执行此操作。当然,子组件将在层次结构中的窗口小部件之后绘制,因此这将实现您所追求的目标。

答案 1 :(得分:0)

在A:

中覆盖event()
bool A::event ( QEvent * e)
{
  bool handled = QWidget::event(e);
  if(e->type() == QEvent::Paint) {
    // cast e to QPaintEvent and do the overlay painting
  }
  return handled;
}