我是QT的新手,所以一开始我请理解。我的问题是我想在 QT 表单中包含的任何 wided 中绘制。因此,例如,我以这种方式覆盖了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();
}
但是这个小部件中没有出现任何内容。这可能吗?或者也许还有其他方法可以实现我的目标?对我来说最重要的是,我希望在我的表格上有任何小的地方,它只是为了在里面画画而设计的。
非常感谢您的理解和任何帮助:)
不能从另一个小部件中绘制小部件。每个小部件在自己的paintEvent()
函数中绘制自己,并且只绘制自己。
有关更多详细信息,您应该查看:如何使用QPainter在QMainWindow中的一组小部件的特定小部件上绘制?