Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在程序执行期间绘制新形状?_C++_Qt - Fatal编程技术网

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* 
如果有任何关于我如何做我想做的事的线索,我将不胜感激