我在一个简单的QWidget
程序中遇到了 Qt/C++ 问题,该程序在 child 内绘制了一个椭圆QWidget
。
该程序由以下部分组成:
(1) 一个父级QWidget
(2) 一个子级QWidget
(用作椭圆的绘图表面)
(3) 一个绘图QPushButton
这是代码的一部分(为简单起见,省略了 QPushButton Slot 和 Signal 代码)
void Draw::paintEvent(QPaintEvent *event) {
QPainter painter;
painter.begin(child_Widget); //The line with the problem
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, 12, Qt::DashDotLine, Qt::RoundCap));
painter.setBrush(QBrush(Qt::green, Qt::SolidPattern));
painter.drawEllipse(50, 50, 100, 100);
painter.end();}
第 2 行painter.begin(child_Widget);
不执行任何操作。仅当我将第 2 行替换为painter.begin(this);
但根据需要绘制在父级QWidget
而不是子级时,程序才会绘制椭圆QWidget
。
PS 我将 child_Widget 安置在 GroupBox 内,而 GroupBox 又安置在QVBoxLayout
.
有什么建议吗?
谢谢。