如果我创建我的 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 插件
最佳答案
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 秒后按预期关闭
关于c++ - QDialog 显示命令为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23106731/