我正在处理一个关于Qt/C++的问题,这个问题与一个简单的 QWidget 程序有关,该程序在子 QWidget 中绘制一个椭圆。
程序由以下组成: (1) 一个父 QWidget (2) 一个子 QWidget(用作绘制椭圆的绘图表面) (3) 一个绘制 QPushButton
以下是部分代码(为了简便省略了 QPushButton Slot 和 Signal 代码)。
程序由以下组成: (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();}
第二行的painter.begin(child_Widget);
没有起到任何作用。只有当我将第二行替换为painter.begin(this);
时,程序才会绘制椭圆,但这会在父QWidget
上绘制而不是所需的子QWidget
。
P.S. 我将child_Widget放置在一个GroupBox中,GroupBox又放置在一个QVBoxLayout
中。
有什么建议吗?
谢谢。