在不使用睡眠的情况下停止Qt中的程序流

时间:2014-07-12 19:56:09

标签: qt

以下是我正在处理的代码。现在发生的事情是,即使我正在创建一个对象ImageCropper *newwindow = new ImageCropper();(来自下面的给定代码),在构造函数和相关函数中的代码完成之前,正在执行对象创建之后的代码。

所以问题是,我在构造函数中设置了一些变量(我再次从这个构造函数调用一个设置变量的函数)。在下面的函数中,当我尝试访问这样的变量时:newwindow->x2它显示垃圾/随机数而不是在另一个类中设置的值。那么我怎样才能实现我的目标呢?

void MainWindow::on_pushButton_clicked()
{
    ui->pushButton->setDisabled(true);
ui->pushButton_2->setDisabled(false);

    ImageCropper *newwindow = new ImageCropper();
    this->hide();

    newwindow->setWindowOpacity(.1);
    newwindow->setWindowFlags(Qt::FramelessWindowHint);
    newwindow->setAttribute(Qt::WA_DeleteOnClose);
    newwindow->showFullScreen();

    originalPixmap = QPixmap(0,0);
    screen = QGuiApplication::primaryScreen();
    originalPixmap = screen->grabWindow(0, newwindow->x2, newwindow->y2, newwindow->w2, newwindow->h2);
    qDebug()<<"x:"<<newwindow->x2<<" | "<<"y:"<<newwindow->y2<<" | "<<"h:"<<newwindow->h2<<" | "<<"w:"<<newwindow->w2;

    connect(newwindow,SIGNAL(destroyed()),this,SLOT(show()));

}

0 个答案:

没有答案