C++ 如何在程序执行期间绘制新形状?
我的问题是,我在程序执行期间尝试绘制新形状时出错。 在这种方法中,我绘制了第一个形状C++ 如何在程序执行期间绘制新形状?,c++,qt,C++,Qt,我的问题是,我在程序执行期间尝试绘制新形状时出错。 在这种方法中,我绘制了第一个形状 void Colours::doPainting() { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.setPen(QColor("#d4d4d4")); painter.setBrush(QBrush("#8B4513")); pa
void Colours::doPainting() {
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setPen(QColor("#d4d4d4"));
painter.setBrush(QBrush("#8B4513"));
painter.drawRect(100, 150, 300, 300);
painter.setBrush(QBrush("#D2691E"));
painter.drawChord(100, 50, 300, 200, 0, 16*180);
painter.setBrush(QBrush("#A0522D"));
painter.drawRect(200, 350, 100, 100);
painter.setBrush(QBrush("#8B4513"));
painter.drawRect(280, 400, 10, 10);
QBrush tb(Qt::transparent);
ui->Button->setPalette(QPalette(tb, tb, tb, tb, tb, tb, tb, tb, tb));
ui->Button->setFlat(true);
QFont f("Arial", 15, QFont::Bold);
ui->lineEdit->setFont(f);
}
之后,我想在按下按钮后绘制一些其他形状
void Colours::on_Button_clicked()
{
QPainter painter(this);
painter.setBrush(QBrush("#8B4513"));
painter.drawRect(200, 150, 300, 300);
painter.setBrush(QBrush("#A0522D"));
painter.drawRect(200, 350, 150, 50);
}
但当我这样做的时候,我总是会犯这样的错误:
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::setBrush: Painter not active
QPainter::drawRects: Painter not active*
如果有任何关于我如何做我想做的事的线索,我将不胜感激