在弹出窗口中检测到递归重绘

时间:2014-12-02 04:21:08

标签: qt popup repaint qwidget

我有一个QPushButton,会在点击时打开新窗口。

void showNewWindow()
{
  PopupWindow *popup = new PopupWindow();
  popup->show();
}

PopupWindow声明如下:

class PopupWindow : public QWidget {
Q_OBJECT

public:
  PopupWindow(QWidget* parent);
  void setContent(QString content) { this->content = content; }
  QString getContent() { return content; }
private:
  QString content;
private slots:
  void handleContinue();
  void handleRunToEnd();

};

然后我实现了它的构造函数:

PopupWindow::PopupWindow(QWidget *parent):QWidget(parent)
{
  QHBoxLayout *hlayout = new QHBoxLayout();
  QWidget *buttonWidget = new QWidget();
  QPushButton *btnContinue = new QPushButton();
  btnContinue->setText("Continue");
  QPushButton *btnRunEnd = new QPushButton();
  btnRunEnd->setText("Run till completion");
  buttonWidget->setLayout(hlayout);
  hlayout->addWidget(btnContinue);
  hlayout->addWidget(btnRunEnd);
  connect(btnContinue,SIGNAL(clicked()), this, SLOT(handleContinue()));
  connect(btnRunEnd,SIGNAL(clicked()), this, SLOT(handleRunToEnd()));
  QTextEdit *html = new QTextEdit();
  html->setReadOnly(true);
  html->setText("AAAA");
  QVBoxLayout *layout = new QVBoxLayout();
  this->setLayout(layout);
  layout->addWidget(html);
  layout->addWidget(buttonWidget); 
}

我的问题:每当我点击Popup Window上的“Continue”或“Run until completion”按钮时。该应用程序崩溃了。我可以看到错误如下:

  

QApplication:对象事件过滤器不能在不同的线程中。

     

QApplication:对象事件过滤器不能在不同的线程中。

     

QApplication:对象事件过滤器不能在不同的线程中。

     

QWidget :: repaint:检测到递归重绘

请帮我解决这个问题。

0 个答案:

没有答案