在表单QT

时间:2017-04-09 12:09:07

标签: c++ qt qt-creator

我是QT的新手,所以一开始我请理解。 我的问题是我想在QT表单中包含任何widged。例如,我以这种方式覆盖了paintEvent方法:

void MainWindow::paintEvent(QPaintEvent *e)
{
    QPainter p;
    p.begin(this);
    p.setBrush(Qt::red);
    p.drawRect(10, 10, 100, 100);
    p.end();
}

一切都很好,表格上会出现红色矩形。然后我在我的表单上的某处添加了例如QWidget,我想以这种方式在这个小部件中绘制:

void MainWindow::paintEvent(QPaintEvent *e)
{
    QPainter p;
    p.begin(ui->widget);
    p.setBrush(Qt::red);
    p.drawRect(10, 10, 100, 100);
    p.end();
}

但是这个小部件里面没有任何内容。这可能吗?或者也许有其他方法来实现我的目标?对我来说最重要的是我希望在我的表格上有任何小的地方,它只是为了画在里面而设计的。

非常感谢您的理解和帮助:)

1 个答案:

答案 0 :(得分:1)

您无法从其他窗口小部件中绘制窗口小部件。每个小部件都自己绘制,并且只在自己的paintEvent()函数中绘制。

有关详细信息,请查看:How to draw with QPainter on a specific widget from a group of widgets in QMainWindow?