使用show命令QDialog是空白的

时间:2014-04-16 10:25:07

标签: c++ qt visual-studio-2008

如果我创建我的QDialog并使用exec()显示模态,一切正常,但我需要这个没有模态!

使用show(),对话框为空

ProgramLoading *programLoading = new ProgramLoading();  
programLoading->show(); 

// some code

programLoading->done(0);

构造

ProgramLoading::ProgramLoading(QWidget *parent)
    : QDialog(parent)
{
    ui.setupUi(this);

    setWindowFlags( Qt::CustomizeWindowHint ); // remove window border
}

不要认为使用Dialog代码是错误的,因为它适用于exec()!

任何提示?谢谢!

PS:我正在使用VisualStudio 2008的QT插件

1 个答案:

答案 0 :(得分:0)

mw(默认窗口装饰):

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    sd = new SplashDialog();
    sd->show();

    QTimer::singleShot(10000,this,SLOT(closeSplashDialog()));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::closeSplashDialog()
{
    sd->close();
    delete sd;
}

启动(具有标签和按钮的UI):

SplashDialog::SplashDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::SplashDialog)
{
    ui->setupUi(this);

    setWindowFlags( Qt::CustomizeWindowHint );
}

SplashDialog::~SplashDialog()
{
    delete ui;
}

Splash Dialog打开并在10秒后按预期关闭