QDialog open用法

Qt 中,对话框的打开具有三种方式:

  • QDialog::show(): 非模态
  • QDialog::exec(): 模态
  • QDialog::open(): 窗口模态

前两种我们很容易理解,下面来看看什么是窗口模态。比如,我们有两个窗口(以下图示来自 Qt Developer Day, 2009):

QDialog open用法_第1张图片

使用如下代码,我们用 open() 函数打开一个对话框:

  
  
  
  
  1. if(!messageBox) {
  2. messageBox = new QMessageBox("SDI",
  3. "The document has been modified. \n"
  4. "Do you want to save your changes?",
  5. QMessageBox::Warning,
  6. QMessageBox::Yes | QMessageBox::Default,
  7. QMessageBox::No,
  8. QMessageBox::Cancel | QMessageBox::Escape,
  9. this);
  10. connect(messageBox, SIGNAL(finished(int)), SLOT(handleDialogClose(int)));
  11. }
  12. messageBox->open();

看看运行的结果:

QDialog open用法_第2张图片

这就是 open() 函数的效果:它类似模态对话框,但是只会阻塞一个窗口,而不是将整个系统阻塞掉。

 

转自:http://devbean.blog.51cto.com/448512/491509

 

你可能感兴趣的:(QDialog open用法)