我是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();
}
但是这个小部件里面没有任何内容。这可能吗?或者也许有其他方法来实现我的目标?对我来说最重要的是我希望在我的表格上有任何小的地方,它只是为了画在里面而设计的。
非常感谢您的理解和帮助:)
答案 0 :(得分:1)
您无法从其他窗口小部件中绘制窗口小部件。每个小部件都自己绘制,并且只在自己的paintEvent()
函数中绘制。
有关详细信息,请查看:How to draw with QPainter on a specific widget from a group of widgets in QMainWindow?